feat: 添加国家/地区选择与展示功能

1. 新增多语言国家配置项,完善语言包
2. 实现国家选择弹窗组件,支持搜索、滚动定位和返回逻辑
3. 个人页面添加国家选择入口与展示逻辑
4. 排行榜列表新增国家名称展示
5. 优化数据变更检测逻辑,过滤无意义空值
6. 调整部分UI布局适配新增元素
This commit is contained in:
“虞渠成” 2026-07-13 14:17:12 +08:00
parent 31ea68bebc
commit 8f20291be6
11 changed files with 1124 additions and 135 deletions

View File

@ -1518,6 +1518,11 @@
"key": "100304",
"zh": "请选择国家/地区",
"en": "Select country/region"
},
{
"key": "100305",
"zh": "国家/地区",
"en": "Country/Region"
}

View File

@ -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}

View File

@ -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

View File

@ -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

View File

@ -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}

View File

@ -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;
}
/// <summary>
/// 检查值是否有意义(非 null、非空字符串
/// </summary>
private static bool IsMeaningfulValue(object value)
{
if (value == null) return false;
if (value is string str && string.IsNullOrEmpty(str)) return false;
return true;
}
}
/// <summary>

View File

@ -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;
}
}
}

View File

@ -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;
/// <summary>
/// 未选中 选中
/// </summary>
@ -21,14 +25,20 @@ public class SelectCountry : MonoBehaviour
private List<SelectCountryItem> _items = new List<SelectCountryItem>();
/// <summary>
/// 确认回调code 为选中的国家代码null 表示返回/取消
/// </summary>
public System.Action<string> onConfirm;
// private void Start()
// {
// Init("");
// }
public void Init(string code)
/// <summary>
/// 初始化
/// </summary>
/// <param name="code">当前选中的国家代码</param>
/// <param name="showBackButton">是否显示返回按钮(主页不显示)</param>
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();
}
/// <summary>
/// 返回按钮点击
/// </summary>
private void OnBack()
{
onConfirm?.Invoke(null);
}
/// <summary>
/// 滚动到当前选中的国家项(居中显示)
/// </summary>
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<RectTransform>();
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<NoDataResponse>("/api/v1/user/country", requestData);
var response = await NetworkCtrl.Instance.Put<NoDataResponse>("/api/v1/user/country-code", requestData);
ResponseCodeHandler.HandleResponse(response,
onSuccess: (data) =>

View File

@ -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;
}

View File

@ -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);

View File

@ -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<string> passwordSetKeys = new List<string> { "100200", "100201" };
public Button signoutButton;
/// <summary>
@ -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();
}
/// <summary>
/// 更新国家显示文本
/// </summary>
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;
}
/// <summary>
/// 选择国家
/// </summary>
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<string>();