From 8f20291be6aa029bd637aaa47f4d794d96e1b652 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9C=E8=99=9E=E6=B8=A0=E6=88=90=E2=80=9D?=
<“yuqucheng2006@qq.com”>
Date: Mon, 13 Jul 2026 14:17:12 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=9B=BD=E5=AE=B6/?=
=?UTF-8?q?=E5=9C=B0=E5=8C=BA=E9=80=89=E6=8B=A9=E4=B8=8E=E5=B1=95=E7=A4=BA?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1. 新增多语言国家配置项,完善语言包
2. 实现国家选择弹窗组件,支持搜索、滚动定位和返回逻辑
3. 个人页面添加国家选择入口与展示逻辑
4. 排行榜列表新增国家名称展示
5. 优化数据变更检测逻辑,过滤无意义空值
6. 调整部分UI布局适配新增元素
---
Assets/Res/language/language.json | 5 +
Assets/Res/ui/common/选择国家.prefab | 2 +
Assets/Res/ui/homepage/一条消息.prefab | 202 ++++----
Assets/Res/ui/rankPage/rankPage.prefab | 453 +++++++++++++++++-
Assets/Res/ui/selfpage/个人信息页.prefab | 453 +++++++++++++++++-
Assets/Scripts/Managers/DataBase.cs | 15 +-
Assets/Scripts/Managers/LanguageManager.cs | 8 +
Assets/Scripts/UI/Components/SelectCountry.cs | 70 ++-
.../Scripts/UI/Pages/HomePage/HomePageCtrl.cs | 2 +-
Assets/Scripts/UI/Pages/Ranking/RankItem.cs | 2 +
.../Scripts/UI/Pages/SelfPage/SelfInfoPage.cs | 47 ++
11 files changed, 1124 insertions(+), 135 deletions(-)
diff --git a/Assets/Res/language/language.json b/Assets/Res/language/language.json
index 10bfc24..5503c37 100644
--- a/Assets/Res/language/language.json
+++ b/Assets/Res/language/language.json
@@ -1518,6 +1518,11 @@
"key": "100304",
"zh": "请选择国家/地区",
"en": "Select country/region"
+ },
+ {
+ "key": "100305",
+ "zh": "国家/地区",
+ "en": "Country/Region"
}
diff --git a/Assets/Res/ui/common/选择国家.prefab b/Assets/Res/ui/common/选择国家.prefab
index 7453676..28fe430 100644
--- a/Assets/Res/ui/common/选择国家.prefab
+++ b/Assets/Res/ui/common/选择国家.prefab
@@ -94,7 +94,9 @@ MonoBehaviour:
countryPrefab: {fileID: 7271805283106587216}
countryParent: {fileID: 8710170637364745357}
submitButton: {fileID: 5803830473808075884}
+ backButton: {fileID: 4389239990246852526}
searchInput: {fileID: 1038112358046293375}
+ scrollRect: {fileID: 2267190601015941531}
textColors:
- {r: 0.18039216, g: 1, b: 0.88235295, a: 1}
- {r: 1, g: 1, b: 1, a: 1}
diff --git a/Assets/Res/ui/homepage/一条消息.prefab b/Assets/Res/ui/homepage/一条消息.prefab
index 5571c88..551006c 100644
--- a/Assets/Res/ui/homepage/一条消息.prefab
+++ b/Assets/Res/ui/homepage/一条消息.prefab
@@ -32,7 +32,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- - {fileID: 8573040954097107187}
+ - {fileID: 7968839955134081989}
- {fileID: 6645908503816164507}
m_Father: {fileID: 4964757057403324682}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -144,18 +144,18 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 424141413498544020}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 8573040954097107187}
+ m_Father: {fileID: 2467527179956106727}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 1}
- m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 75, y: -20}
+ m_AnchorMin: {x: 1, y: 0.5}
+ m_AnchorMax: {x: 1, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 16, y: 16}
- m_Pivot: {x: 0, y: 0.5}
+ m_Pivot: {x: 1, y: 0.5}
--- !u!222 &3003048288810463836
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -224,7 +224,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 8573040954097107187}
+ m_Father: {fileID: 7968839955134081989}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -269,7 +269,7 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
---- !u!1 &3932980674487297319
+--- !u!1 &4189220712394483872
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -277,9 +277,9 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 8573040954097107187}
- - component: {fileID: 8780181668511390004}
- - component: {fileID: 9060404144470933708}
+ - component: {fileID: 7968839955134081989}
+ - component: {fileID: 5757094780389527559}
+ - component: {fileID: 4810850765463798399}
m_Layer: 5
m_Name: "\u6807\u9898"
m_TagString: Untagged
@@ -287,21 +287,20 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!224 &8573040954097107187
+--- !u!224 &7968839955134081989
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3932980674487297319}
+ m_GameObject: {fileID: 4189220712394483872}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8948361989108593720}
- - {fileID: 7968839955134081989}
- - {fileID: 3043417342358844839}
+ - {fileID: 2467527179956106727}
m_Father: {fileID: 7463182127386777271}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -309,21 +308,21 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &8780181668511390004
+--- !u!222 &5757094780389527559
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3932980674487297319}
+ m_GameObject: {fileID: 4189220712394483872}
m_CullTransparentMesh: 1
---- !u!114 &9060404144470933708
+--- !u!114 &4810850765463798399
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 3932980674487297319}
+ m_GameObject: {fileID: 4189220712394483872}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
@@ -343,85 +342,6 @@ MonoBehaviour:
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
---- !u!1 &4189220712394483872
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 7968839955134081989}
- - component: {fileID: 5757094780389527559}
- - component: {fileID: 2095223185345839302}
- m_Layer: 5
- m_Name: "\u6807\u9898"
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &7968839955134081989
-RectTransform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4189220712394483872}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 8573040954097107187}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0, y: 0}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 600, y: 45}
- m_Pivot: {x: 1, y: 0.5}
---- !u!222 &5757094780389527559
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4189220712394483872}
- m_CullTransparentMesh: 1
---- !u!114 &2095223185345839302
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4189220712394483872}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_FontData:
- m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
- m_FontSize: 28
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 2
- m_MaxSize: 40
- m_Alignment: 3
- m_AlignByGeometry: 0
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 0
- m_LineSpacing: 1
- m_Text:
--- !u!1 &4886359267522328938
GameObject:
m_ObjectHideFlags: 0
@@ -556,7 +476,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 345, y: 0}
- m_SizeDelta: {x: 690, y: 0}
+ m_SizeDelta: {x: 691, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &3687430568666067297
CanvasRenderer:
@@ -648,10 +568,90 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1fbd473375b700e49926e9ad557ddff7, type: 3}
m_Name:
m_EditorClassIdentifier:
- titleText: {fileID: 2095223185345839302}
+ titleText: {fileID: 226019483005566603}
contentText: {fileID: 1921357071669659345}
createTimeText: {fileID: 4153783856056029694}
unReadPoint: {fileID: 424141413498544020}
+--- !u!1 &7107006051777114089
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2467527179956106727}
+ - component: {fileID: 7021013972503157345}
+ - component: {fileID: 226019483005566603}
+ m_Layer: 5
+ m_Name: "\u6807\u9898"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2467527179956106727
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7107006051777114089}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 3043417342358844839}
+ m_Father: {fileID: 7968839955134081989}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 600, y: 45}
+ m_Pivot: {x: 1, y: 0.5}
+--- !u!222 &7021013972503157345
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7107006051777114089}
+ m_CullTransparentMesh: 1
+--- !u!114 &226019483005566603
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7107006051777114089}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
+ m_FontSize: 28
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 3
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
--- !u!1 &9170795369323360691
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Res/ui/rankPage/rankPage.prefab b/Assets/Res/ui/rankPage/rankPage.prefab
index a809d2d..c148944 100644
--- a/Assets/Res/ui/rankPage/rankPage.prefab
+++ b/Assets/Res/ui/rankPage/rankPage.prefab
@@ -169,6 +169,7 @@ MonoBehaviour:
avatar: {fileID: 9054009673176152533}
rankText: {fileID: 4008727878463189030}
normalAvatar: {fileID: 21300000, guid: 0d079f740e6e9bf47a72b22445bc71cb, type: 3}
+ country: {fileID: 1254300536316745956}
--- !u!1 &200819185583037446
GameObject:
m_ObjectHideFlags: 0
@@ -855,6 +856,7 @@ RectTransform:
- {fileID: 7118184243371686167}
- {fileID: 3822276276255728450}
- {fileID: 3108824919101835117}
+ - {fileID: 3993712609156127209}
- {fileID: 7206002640823724695}
- {fileID: 1093539775160077753}
m_Father: {fileID: 8184328179605170298}
@@ -1056,8 +1058,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 229, y: 0}
- m_SizeDelta: {x: 345, y: 0}
+ m_AnchoredPosition: {x: 229, y: 1.5}
+ m_SizeDelta: {x: 345, y: 2.9999962}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &5216511467437094472
CanvasRenderer:
@@ -1094,7 +1096,7 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 40
- m_Alignment: 3
+ m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
@@ -1364,8 +1366,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 229, y: 0}
- m_SizeDelta: {x: 345, y: 0}
+ m_AnchoredPosition: {x: 229, y: 1.5}
+ m_SizeDelta: {x: 345, y: 3}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &5044462281821457151
CanvasRenderer:
@@ -1402,7 +1404,7 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 40
- m_Alignment: 3
+ m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
@@ -1502,6 +1504,164 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
textKey: 100249
+--- !u!1 &2322556623719368078
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2132287922975309942}
+ - component: {fileID: 8397882442245899516}
+ - component: {fileID: 9078057264796883973}
+ m_Layer: 5
+ m_Name: "\u56FD\u5BB6"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2132287922975309942
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2322556623719368078}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1.0003841, y: 1.0003841, z: 1.0003841}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 3154140132064390973}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 229.00002, y: -1.5}
+ m_SizeDelta: {x: 345, y: 3}
+ m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &8397882442245899516
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2322556623719368078}
+ m_CullTransparentMesh: 1
+--- !u!114 &9078057264796883973
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2322556623719368078}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.6156863, g: 0.6117647, b: 0.61960787, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
+ m_FontSize: 24
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 6
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!1 &2392357866559312459
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5529680054435010905}
+ - component: {fileID: 9063406725601134300}
+ - component: {fileID: 4051325752930883201}
+ m_Layer: 5
+ m_Name: "\u56FD\u5BB6"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &5529680054435010905
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2392357866559312459}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2174243605101703682}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 229, y: -1.5}
+ m_SizeDelta: {x: 345, y: 3}
+ m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &9063406725601134300
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2392357866559312459}
+ m_CullTransparentMesh: 1
+--- !u!114 &4051325752930883201
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2392357866559312459}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.6156863, g: 0.6117647, b: 0.61960787, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
+ m_FontSize: 24
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 6
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
--- !u!1 &2496927870803356780
GameObject:
m_ObjectHideFlags: 0
@@ -1536,8 +1696,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 229, y: 0}
- m_SizeDelta: {x: 345, y: 0}
+ m_AnchoredPosition: {x: 229, y: 1.5}
+ m_SizeDelta: {x: 345, y: 3}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &8745095631282004911
CanvasRenderer:
@@ -1574,7 +1734,7 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 40
- m_Alignment: 3
+ m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
@@ -2537,14 +2697,15 @@ RectTransform:
m_Children:
- {fileID: 9087650174407558229}
- {fileID: 2035540721614927710}
+ - {fileID: 2829244738973423406}
- {fileID: 113864682395085165}
- {fileID: 7094503118749917060}
m_Father: {fileID: 953875473773255766}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 375, y: -142}
- m_SizeDelta: {x: 750, y: 68}
+ m_AnchoredPosition: {x: 375, y: -147.5}
+ m_SizeDelta: {x: 750, y: 75}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9100029741868349960
CanvasRenderer:
@@ -2601,6 +2762,86 @@ MonoBehaviour:
avatar: {fileID: 6490267337167937841}
rankText: {fileID: 0}
normalAvatar: {fileID: 21300000, guid: 0d079f740e6e9bf47a72b22445bc71cb, type: 3}
+ country: {fileID: 2851015791218092602}
+--- !u!1 &4095474919567054399
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3993712609156127209}
+ - component: {fileID: 5982053295923151030}
+ - component: {fileID: 1254300536316745956}
+ m_Layer: 5
+ m_Name: "\u56FD\u5BB6"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3993712609156127209
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4095474919567054399}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 6605168756266113516}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 228.5, y: -1.5}
+ m_SizeDelta: {x: 345, y: 3}
+ m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &5982053295923151030
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4095474919567054399}
+ m_CullTransparentMesh: 1
+--- !u!114 &1254300536316745956
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4095474919567054399}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.6156863, g: 0.6117647, b: 0.61960787, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
+ m_FontSize: 24
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 6
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
--- !u!1 &4206387083405333351
GameObject:
m_ObjectHideFlags: 0
@@ -2933,14 +3174,15 @@ RectTransform:
m_Children:
- {fileID: 2078765468358302152}
- {fileID: 8534367893039886549}
+ - {fileID: 5529680054435010905}
- {fileID: 5732667395552905057}
- {fileID: 5092450718026614425}
m_Father: {fileID: 953875473773255766}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 375, y: -34}
- m_SizeDelta: {x: 750, y: 68}
+ m_AnchoredPosition: {x: 375, y: -37.5}
+ m_SizeDelta: {x: 750, y: 75}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5518900767728152085
CanvasRenderer:
@@ -2997,6 +3239,7 @@ MonoBehaviour:
avatar: {fileID: 5169193787059025926}
rankText: {fileID: 0}
normalAvatar: {fileID: 21300000, guid: 0d079f740e6e9bf47a72b22445bc71cb, type: 3}
+ country: {fileID: 4051325752930883201}
--- !u!1 &4661586653791768227
GameObject:
m_ObjectHideFlags: 0
@@ -3289,8 +3532,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 229, y: 0}
- m_SizeDelta: {x: 345, y: 0}
+ m_AnchoredPosition: {x: 229, y: 1.5}
+ m_SizeDelta: {x: 345, y: 3}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &3333041104937561824
CanvasRenderer:
@@ -3327,7 +3570,7 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 40
- m_Alignment: 3
+ m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
@@ -3846,8 +4089,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 229, y: 0}
- m_SizeDelta: {x: 345, y: 0}
+ m_AnchoredPosition: {x: 229, y: 1.5}
+ m_SizeDelta: {x: 345, y: 3}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &4636196949540313751
CanvasRenderer:
@@ -3884,7 +4127,7 @@ MonoBehaviour:
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 40
- m_Alignment: 3
+ m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
@@ -4111,7 +4354,7 @@ MonoBehaviour:
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 1
- m_Spacing: 40
+ m_Spacing: 35
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 1
@@ -4512,6 +4755,85 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
textKey: 100250
+--- !u!1 &7737755024571297123
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8007124913692112588}
+ - component: {fileID: 246771575643089803}
+ - component: {fileID: 6736255853870619255}
+ m_Layer: 5
+ m_Name: "\u56FD\u5BB6"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &8007124913692112588
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7737755024571297123}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1.0003841, y: 1.0003841, z: 1.0003841}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1921624740618383196}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 229.00002, y: -1.5}
+ m_SizeDelta: {x: 345, y: 3}
+ m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &246771575643089803
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7737755024571297123}
+ m_CullTransparentMesh: 1
+--- !u!114 &6736255853870619255
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7737755024571297123}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.6156863, g: 0.6117647, b: 0.61960787, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
+ m_FontSize: 24
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 6
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
--- !u!1 &7867887545914322893
GameObject:
m_ObjectHideFlags: 0
@@ -4949,6 +5271,85 @@ MonoBehaviour:
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 0
+--- !u!1 &8417963168765150662
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2829244738973423406}
+ - component: {fileID: 4716071730833508381}
+ - component: {fileID: 2851015791218092602}
+ m_Layer: 5
+ m_Name: "\u56FD\u5BB6"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2829244738973423406
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8417963168765150662}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 8564396123553385529}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 229.00002, y: -1.5}
+ m_SizeDelta: {x: 345, y: 3}
+ m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &4716071730833508381
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8417963168765150662}
+ m_CullTransparentMesh: 1
+--- !u!114 &2851015791218092602
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8417963168765150662}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.6156863, g: 0.6117647, b: 0.61960787, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
+ m_FontSize: 24
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 6
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
--- !u!1 &8722013320290349437
GameObject:
m_ObjectHideFlags: 0
@@ -5076,14 +5477,15 @@ RectTransform:
- {fileID: 4779148146058550277}
- {fileID: 4123001893358364459}
- {fileID: 8051365576701890004}
+ - {fileID: 2132287922975309942}
- {fileID: 4861019315401453240}
- {fileID: 2981164662268883974}
m_Father: {fileID: 953875473773255766}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 375, y: -358}
- m_SizeDelta: {x: 750, y: 68}
+ m_AnchoredPosition: {x: 375, y: -367.5}
+ m_SizeDelta: {x: 750, y: 75}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4158408527774079532
CanvasRenderer:
@@ -5140,6 +5542,7 @@ MonoBehaviour:
avatar: {fileID: 3839179418638713441}
rankText: {fileID: 1721694165247586357}
normalAvatar: {fileID: 21300000, guid: 0d079f740e6e9bf47a72b22445bc71cb, type: 3}
+ country: {fileID: 9078057264796883973}
--- !u!1 &8802112352110948514
GameObject:
m_ObjectHideFlags: 0
@@ -5266,14 +5669,15 @@ RectTransform:
m_Children:
- {fileID: 802985986106122635}
- {fileID: 5794851297297107642}
+ - {fileID: 8007124913692112588}
- {fileID: 2949555694634610654}
- {fileID: 6159195208079083266}
m_Father: {fileID: 953875473773255766}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 375, y: -250}
- m_SizeDelta: {x: 750, y: 68}
+ m_AnchoredPosition: {x: 375, y: -257.5}
+ m_SizeDelta: {x: 750, y: 75}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6025936054114137009
CanvasRenderer:
@@ -5330,6 +5734,7 @@ MonoBehaviour:
avatar: {fileID: 9056712257673433432}
rankText: {fileID: 0}
normalAvatar: {fileID: 21300000, guid: 0d079f740e6e9bf47a72b22445bc71cb, type: 3}
+ country: {fileID: 6736255853870619255}
--- !u!1 &8973715693704571952
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Res/ui/selfpage/个人信息页.prefab b/Assets/Res/ui/selfpage/个人信息页.prefab
index 03a8b8f..0020d6f 100644
--- a/Assets/Res/ui/selfpage/个人信息页.prefab
+++ b/Assets/Res/ui/selfpage/个人信息页.prefab
@@ -613,6 +613,129 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
+--- !u!1 &1008844952385161323
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6774584937554793577}
+ - component: {fileID: 8087472640913451448}
+ - component: {fileID: 8927687901035208401}
+ - component: {fileID: 4981612120447436577}
+ m_Layer: 5
+ m_Name: "\u56FD\u5BB6"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6774584937554793577
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1008844952385161323}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2985100948655753916}
+ - {fileID: 2405746766902969524}
+ - {fileID: 3245173801137015517}
+ m_Father: {fileID: 4482340305028100583}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8087472640913451448
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1008844952385161323}
+ m_CullTransparentMesh: 1
+--- !u!114 &8927687901035208401
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1008844952385161323}
+ m_Enabled: 0
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 0}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4981612120447436577
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1008844952385161323}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 0
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 8927687901035208401}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
--- !u!1 &1179663005510459354
GameObject:
m_ObjectHideFlags: 0
@@ -778,6 +901,81 @@ MonoBehaviour:
y: 0
width: 1
height: 1
+--- !u!1 &1986310413045595588
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2405746766902969524}
+ - component: {fileID: 2959030380979264847}
+ - component: {fileID: 531701738166837717}
+ m_Layer: 5
+ m_Name: icon
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2405746766902969524
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1986310413045595588}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 6774584937554793577}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 0.5}
+ m_AnchorMax: {x: 1, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 36, y: 36}
+ m_Pivot: {x: 1, y: 0.5}
+--- !u!222 &2959030380979264847
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1986310413045595588}
+ m_CullTransparentMesh: 1
+--- !u!114 &531701738166837717
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1986310413045595588}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.6156863, g: 0.6117647, b: 0.61960787, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: 54b21d150b0dc094badeac9b2d5e7d27, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!1 &2262582674051144164
GameObject:
m_ObjectHideFlags: 0
@@ -1164,6 +1362,99 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
textKey: 100021
+--- !u!1 &2853116935413263240
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2985100948655753916}
+ - component: {fileID: 6505043147582150572}
+ - component: {fileID: 5530171410500887960}
+ - component: {fileID: 7725828215548627305}
+ m_Layer: 5
+ m_Name: title
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2985100948655753916
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2853116935413263240}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 6774584937554793577}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6505043147582150572
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2853116935413263240}
+ m_CullTransparentMesh: 1
+--- !u!114 &5530171410500887960
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2853116935413263240}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
+ m_FontSize: 30
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 3
+ m_MaxSize: 40
+ m_Alignment: 3
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Country/Region
+--- !u!114 &7725828215548627305
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2853116935413263240}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 89f1d49b50a31514787b4e268b1c73bb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ textKey: 100305
--- !u!1 &3128416676248311471
GameObject:
m_ObjectHideFlags: 0
@@ -1292,6 +1583,8 @@ RectTransform:
- {fileID: 4107443752149291401}
- {fileID: 5030859281969820890}
- {fileID: 184803144727737283}
+ - {fileID: 6774584937554793577}
+ - {fileID: 3289844309708103056}
- {fileID: 2851268200846277789}
- {fileID: 3480274442878060420}
- {fileID: 7655272676486550921}
@@ -1300,7 +1593,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -200}
- m_SizeDelta: {x: -60, y: 400}
+ m_SizeDelta: {x: -60, y: 500}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &3376027943477643505
CanvasRenderer:
@@ -1631,6 +1924,81 @@ MonoBehaviour:
confirmCropButton: {fileID: 2522497362292162409}
cancelCropButton: {fileID: 535049532845737211}
avatarSize: 300
+--- !u!1 &4279874025708521665
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3289844309708103056}
+ - component: {fileID: 3773102472085391359}
+ - component: {fileID: 3929114293716307644}
+ m_Layer: 5
+ m_Name: Image (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3289844309708103056
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4279874025708521665}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4482340305028100583}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 1}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3773102472085391359
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4279874025708521665}
+ m_CullTransparentMesh: 1
+--- !u!114 &3929114293716307644
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4279874025708521665}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.20784314, g: 0.22352941, b: 0.24313726, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 0}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
--- !u!1 &4590694418137395540
GameObject:
m_ObjectHideFlags: 0
@@ -1678,6 +2046,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4590694418137395540}
m_CullTransparentMesh: 1
+--- !u!1 &4677807536776557980
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3245173801137015517}
+ - component: {fileID: 8401751127806137848}
+ - component: {fileID: 869492382333240842}
+ m_Layer: 5
+ m_Name: value
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &3245173801137015517
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4677807536776557980}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 6774584937554793577}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 0.5}
+ m_AnchorMax: {x: 1, y: 0.5}
+ m_AnchoredPosition: {x: -40, y: 0}
+ m_SizeDelta: {x: 311.56, y: 100}
+ m_Pivot: {x: 1, y: 0.5}
+--- !u!222 &8401751127806137848
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4677807536776557980}
+ m_CullTransparentMesh: 1
+--- !u!114 &869492382333240842
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4677807536776557980}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.6156863, g: 0.6117647, b: 0.61960787, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3}
+ m_FontSize: 30
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 3
+ m_MaxSize: 40
+ m_Alignment: 5
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1.2
+ m_Text:
--- !u!1 &4810389326000279585
GameObject:
m_ObjectHideFlags: 0
@@ -2932,6 +3379,10 @@ MonoBehaviour:
type: 3}
setPasswordPanelPrefab: {fileID: 244942182213411018, guid: cf8d28970fab05e498e87bba588aa3e6,
type: 3}
+ selectCountryPrefab: {fileID: 1196293823344848224, guid: 90501a08c2cf82c4187b5f13c391291f,
+ type: 3}
+ countryText: {fileID: 869492382333240842}
+ selectCountryButton: {fileID: 4981612120447436577}
signoutButton: {fileID: 8124639496175450611}
setPasswordButtons:
- {fileID: 173285266742594171}
diff --git a/Assets/Scripts/Managers/DataBase.cs b/Assets/Scripts/Managers/DataBase.cs
index c9d0fff..0c10341 100644
--- a/Assets/Scripts/Managers/DataBase.cs
+++ b/Assets/Scripts/Managers/DataBase.cs
@@ -468,6 +468,7 @@ namespace Kill.Managers
public string nickname;
public string avatar;
public int kill_count;
+ public string country_code;
}
public class RankDataList
{
@@ -625,7 +626,7 @@ namespace Kill.Managers
foreach (var field in allFields)
{
var value = field.GetValue(this);
- if (value != null)
+ if (IsMeaningfulValue(value))
changed[field.Name] = value;
}
return changed;
@@ -637,13 +638,23 @@ namespace Kill.Managers
var currentValue = field.GetValue(this);
var originalValue = field.GetValue(original);
- if (!Equals(currentValue, originalValue))
+ if (!Equals(currentValue, originalValue) && IsMeaningfulValue(currentValue))
{
changed[field.Name] = currentValue;
}
}
return changed;
}
+
+ ///
+ /// 检查值是否有意义(非 null、非空字符串)
+ ///
+ private static bool IsMeaningfulValue(object value)
+ {
+ if (value == null) return false;
+ if (value is string str && string.IsNullOrEmpty(str)) return false;
+ return true;
+ }
}
///
diff --git a/Assets/Scripts/Managers/LanguageManager.cs b/Assets/Scripts/Managers/LanguageManager.cs
index 6dc88f8..88759bc 100644
--- a/Assets/Scripts/Managers/LanguageManager.cs
+++ b/Assets/Scripts/Managers/LanguageManager.cs
@@ -107,5 +107,13 @@ namespace Kill.Managers
{
return countryList.Find((x)=>x.code==code);
}
+ public string GetCountryStr(string code)
+ {
+ Country c = countryList.Find((x) => x.code == code);
+ if (languageType == LanguageType.Chinese)
+ return c.name_zh;
+ else
+ return c.name_en;
+ }
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/UI/Components/SelectCountry.cs b/Assets/Scripts/UI/Components/SelectCountry.cs
index a9e4f1e..101dd80 100644
--- a/Assets/Scripts/UI/Components/SelectCountry.cs
+++ b/Assets/Scripts/UI/Components/SelectCountry.cs
@@ -5,15 +5,19 @@ using UnityEngine;
using UnityEngine.UI;
using Kill.Managers;
using Kill.Network;
+using Kill.UI;
public class SelectCountry : MonoBehaviour
{
public GameObject countryPrefab;
public Transform countryParent;
public Button submitButton;
+ public Button backButton;
public InputField searchInput;
+ public ScrollRect scrollRect;
LanguageManager.Country selectCountry;
private bool _hasSelection;
+ private string _originalCode;
///
/// 未选中 选中
///
@@ -21,14 +25,20 @@ public class SelectCountry : MonoBehaviour
private List _items = new List();
+ ///
+ /// 确认回调:code 为选中的国家代码,null 表示返回/取消
+ ///
public System.Action onConfirm;
- // private void Start()
- // {
- // Init("");
- // }
- public void Init(string code)
+ ///
+ /// 初始化
+ ///
+ /// 当前选中的国家代码
+ /// 是否显示返回按钮(主页不显示)
+ public void Init(string code, bool showBackButton = true)
{
+ _originalCode = code;
+
countryPrefab.SetActive(false);
// 清理旧 item
foreach (var item in _items)
@@ -36,6 +46,16 @@ public class SelectCountry : MonoBehaviour
_items.Clear();
_hasSelection = false;
+ // 返回按钮
+ if (backButton != null)
+ {
+ backButton.gameObject.SetActive(showBackButton);
+ backButton.onClick.RemoveAllListeners();
+ backButton.onClick.AddListener(OnBack);
+ if (showBackButton)
+ UIManager.Instance.RegisterBackAction(OnBack);
+ }
+
if (LanguageManager.Instance == null || LanguageManager.Instance.countryList == null)
return;
@@ -59,9 +79,47 @@ public class SelectCountry : MonoBehaviour
if (!string.IsNullOrEmpty(code))
SelectCountryByCode(code);
+ // 自动滚动到选中项
+ ScrollToSelected();
+
UpdateSubmitButton();
}
+ ///
+ /// 返回按钮点击
+ ///
+ private void OnBack()
+ {
+ onConfirm?.Invoke(null);
+ }
+
+ ///
+ /// 滚动到当前选中的国家项(居中显示)
+ ///
+ private void ScrollToSelected()
+ {
+ if (scrollRect == null || !_hasSelection) return;
+
+ int index = _items.FindIndex(i => i.Country.code == selectCountry.code);
+ if (index < 0) return;
+
+ Canvas.ForceUpdateCanvases();
+
+ var itemRect = _items[index].GetComponent();
+ float contentHeight = scrollRect.content.rect.height;
+ float viewportHeight = scrollRect.viewport.rect.height;
+
+ if (contentHeight <= viewportHeight) return;
+
+ // 计算目标滚动位置:使选中项居中
+ float maxScrollY = contentHeight - viewportHeight;
+ float itemCenterY = Mathf.Abs(itemRect.anchoredPosition.y) + itemRect.rect.height / 2;
+ float targetScrollY = itemCenterY - viewportHeight / 2;
+ targetScrollY = Mathf.Clamp(targetScrollY, 0, maxScrollY);
+
+ scrollRect.verticalNormalizedPosition = 1f - targetScrollY / maxScrollY;
+ }
+
private void OnSearchChanged(string keyword)
{
foreach (var item in _items)
@@ -116,7 +174,7 @@ public class SelectCountry : MonoBehaviour
country_code = code
};
- var response = await NetworkCtrl.Instance.Post("/api/v1/user/country", requestData);
+ var response = await NetworkCtrl.Instance.Put("/api/v1/user/country-code", requestData);
ResponseCodeHandler.HandleResponse(response,
onSuccess: (data) =>
diff --git a/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs b/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs
index f068e71..29a7c5d 100644
--- a/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs
+++ b/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs
@@ -69,7 +69,7 @@ namespace Kill.UI.Pages
{
var page= Instantiate(selectCountryPage,transform);
page.gameObject.SetActive(true);
- page.Init(null);
+ page.Init(null,false);
page.onConfirm=(code)=>{UIManager.Instance.OpenMainPage(UIManager.PageName.homePage);};
return;
}
diff --git a/Assets/Scripts/UI/Pages/Ranking/RankItem.cs b/Assets/Scripts/UI/Pages/Ranking/RankItem.cs
index 7deed58..63f87f4 100644
--- a/Assets/Scripts/UI/Pages/Ranking/RankItem.cs
+++ b/Assets/Scripts/UI/Pages/Ranking/RankItem.cs
@@ -14,11 +14,13 @@ namespace Kill.UI.Pages
public Image avatar;
public Text rankText;
public Sprite normalAvatar;
+ public Text country;
public void SetData(RankData data)
{
avatar.sprite=normalAvatar;
nameText.text = data.nickname;
countText.text = data.kill_count.ToString();
+ country.text=string.IsNullOrEmpty(data.country_code)?"--":LanguageManager.Instance.GetCountryStr(data.country_code);
if(!string.IsNullOrEmpty(data.avatar))
{
NetworkCtrl.Instance.LoadImageToUIImageAsync(data.avatar, avatar);
diff --git a/Assets/Scripts/UI/Pages/SelfPage/SelfInfoPage.cs b/Assets/Scripts/UI/Pages/SelfPage/SelfInfoPage.cs
index bfed2e2..2c41baf 100644
--- a/Assets/Scripts/UI/Pages/SelfPage/SelfInfoPage.cs
+++ b/Assets/Scripts/UI/Pages/SelfPage/SelfInfoPage.cs
@@ -19,6 +19,9 @@ namespace Kill.UI.Pages
public Button backButton;
public SelfVerificationCodePanel verificationCodePanelPrefab;
public SelfSetPasswordPanel setPasswordPanelPrefab;
+ public SelectCountry selectCountryPrefab;
+ public Text countryText;
+ public Button selectCountryButton;
List passwordSetKeys = new List { "100200", "100201" };
public Button signoutButton;
///
@@ -61,8 +64,52 @@ namespace Kill.UI.Pages
{
nicknameText.text = userInfo.username;
}
+
+ // 国家展示与选择
+ if (countryText != null)
+ UpdateCountryDisplay(userInfo.country_code);
+ if (selectCountryButton != null)
+ {
+ selectCountryButton.onClick.RemoveAllListeners();
+ selectCountryButton.onClick.AddListener(OnSelectCountry);
+ }
+
InitLanguageText();
}
+
+ ///
+ /// 更新国家显示文本
+ ///
+ private void UpdateCountryDisplay(string code)
+ {
+ if (string.IsNullOrEmpty(code))
+ {
+ countryText.text = "";
+ return;
+ }
+ var country = LanguageManager.Instance.countryList.Find(c => c.code == code);
+ bool isZh = LanguageManager.Instance.languageType == LanguageManager.LanguageType.Chinese;
+ countryText.text = country.code != null ? (isZh ? country.name_zh : country.name_en) : code;
+ }
+
+ ///
+ /// 选择国家
+ ///
+ private void OnSelectCountry()
+ {
+ var selectCountry = Instantiate(selectCountryPrefab, transform);
+ selectCountry.Init(userInfo.country_code);
+ selectCountry.onConfirm = (code) =>
+ {
+ if (code != null)
+ {
+ userInfo.country_code = code;
+ UpdateCountryDisplay(code);
+ }
+ Destroy(selectCountry.gameObject);
+ UIManager.Instance.RegisterBackAction(OnBack);
+ };
+ }
public void InitLanguageText()
{
passwordSet = new List();