教程关卡

This commit is contained in:
kawagiri 2026-05-13 20:46:36 +08:00
parent 4939e68660
commit 8798797f06
42 changed files with 38041 additions and 6404 deletions

View File

@ -1,5 +1,5 @@
{
"nextId": 133,
"nextId": 135,
"bugs": [
{
"id": 2,
@ -1310,6 +1310,26 @@
"module": "",
"createdAt": 1778568632395,
"updatedAt": 1778602274938
},
{
"id": 133,
"title": "遇到隐身的也算meetplayr",
"description": "",
"status": "open",
"priority": "medium",
"module": "",
"createdAt": 1778661741932,
"updatedAt": 1778661741932
},
{
"id": 134,
"title": "英雄召唤得时候开的视野没有计入任务",
"description": "",
"status": "open",
"priority": "medium",
"module": "",
"createdAt": 1778665278528,
"updatedAt": 1778665278528
}
]
}

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -14,7 +14,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
ScenarioList:
- ScenarioType: 0
LeaderSprite: {fileID: 21300000, guid: d4661e5af1f33b94ea56ac7d7b30b512, type: 3}
LeaderSprite: {fileID: 21300000, guid: be05e31a5775ae747a6fb1ce1f8db46a, type: 3}
Name: "#0 \u65B0\u624B\u6559\u7A0B"
Desc: "\u53EA\u97005\u6B65\uFF0C\u5B8C\u5168\u638C\u63E1\u5E1D\u56FD\u5E7B\u60F3\u4E61\uFF01"
levelId: 8

View File

@ -0,0 +1,88 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5dbf20049d196f448ae1987f7096b7d9, type: 3}
m_Name: StaffDataAssets
m_EditorClassIdentifier:
StaffTitleInfoList:
- Title: 1
Name: "\u6838\u5FC3\u56E2\u961F"
- Title: 2
Name: "\u6E38\u620F\u8BBE\u8BA1"
- Title: 3
Name: "\u7F8E\u672F"
- Title: 4
Name: "\u7F8E\u672F\u534F\u529B"
- Title: 5
Name: "\u6E38\u620F\u8BBE\u8BA1\u534F\u529B"
- Title: 6
Name: "\u672C\u5730\u5316\u534F\u529B"
- Title: 7
Name: "\u97F3\u4E50\u97F3\u6548"
- Title: 9
Name: "\u754C\u9762\u4EA4\u4E92"
- Title: 8
Name: "\u7279\u522B\u9E23\u8C22"
StaffList:
- Title: 1
Name: "\u5929\u706B\u4EBA\u96EA\u7CD5"
Desc: "\u6E38\u620F\u8BBE\u8BA1/\u7A0B\u5E8F/\u7F8E\u672F/UI/\u6587\u6848"
- Title: 1
Name: "\u767D\u54C9"
Desc: "\u7A0B\u5E8F\u5F00\u53D1"
- Title: 3
Name: "\u4E45\u4E5D"
Desc: "\u89D2\u8272\u7ACB\u7ED8//\u4E3BKV"
- Title: 3
Name: BING
Desc: "\u89D2\u8272\u7ACB\u7ED8"
- Title: 3
Name: "P\u541B"
Desc: "\u63D2\u56FE/\u5267\u60C5\u6F2B\u753B/\u573A\u666F/\u68CB\u5B50"
- Title: 3
Name: "\u5A07\u9633"
Desc: "\u573A\u666F"
- Title: 4
Name: "\u86CB\u5377"
Desc: "\u68CB\u5B50"
- Title: 2
Name: "\u6DF1\u6F9C"
Desc: "\u6E38\u620F\u8BBE\u8BA1"
- Title: 2
Name: "\u7EDD\u58C1\u7684\u591C\u9E6D\u5B50"
Desc: "\u6E38\u620F\u8BBE\u8BA1\u534F\u529B"
- Title: 9
Name: "\u963F\u4EE4"
Desc: "UI\u98CE\u683C\u8BBE\u8BA1/\u4EA4\u4E92\u8BBE\u8BA1"
- Title: 7
Name: "\u56DE\u58F0\u8231"
Desc: "\u97F3\u4E50&\u97F3\u6548"
- Title: 6
Name: "\u4EAE\u84DD"
Desc: "\u591A\u8BED\u8A00\u672C\u5730\u5316"
- Title: 6
Name: "\u9ECE\u7384"
Desc: "\u82F1\u8BED\u672C\u5730\u5316"
- Title: 8
Name: "\u661F\u671F\u516D\u4E0A\u7EBF"
Desc: "\u8BBE\u5B9A\u987E\u95EE"
- Title: 8
Name: "Q\u7FA4\u7FA4\u53CB"
Desc: "\u6211\u7231\u6B7B\u4F60\u4EEC\u4E86"
- Title: 8
Name: "discord\u7684\u670B\u53CB"
Desc: "\u611F\u8C22\u4F60\u4EEC\u7684\u652F\u6301!"
- Title: 8
Name: "\u6D4B\u8BD5\u4F53\u9A8C\u7684\u6BCF\u4E00\u4E2A\u73A9\u5BB6"
Desc: "\u611F\u8C22\u4F60\u4EEC\u7684\u4F53\u9A8C\u53CD\u9988!"
- Title: 8
Name: "\u4F60"
Desc: "\u611F\u8C22\u4F60\u4F53\u9A8C\u8FD9\u4E2A\u6E38\u620F\uFF01"

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 62c23cc56bff1ad4a83ba53506ab46ef
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -14,7 +14,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
ScenarioList:
- ScenarioType: 0
LeaderSprite: {fileID: 21300000, guid: d4661e5af1f33b94ea56ac7d7b30b512, type: 3}
LeaderSprite: {fileID: 21300000, guid: be05e31a5775ae747a6fb1ce1f8db46a, type: 3}
Name: 19765
Desc: 19766
levelId: 8

View File

@ -0,0 +1,88 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5dbf20049d196f448ae1987f7096b7d9, type: 3}
m_Name: StaffDataAssets
m_EditorClassIdentifier:
StaffTitleInfoList:
- Title: 1
Name: 19778
- Title: 2
Name: 19779
- Title: 3
Name: 19823
- Title: 4
Name: 19824
- Title: 5
Name: 19825
- Title: 6
Name: 19826
- Title: 7
Name: 19827
- Title: 9
Name: 19828
- Title: 8
Name: 19829
StaffList:
- Title: 1
Name: 19773
Desc: 19784
- Title: 1
Name: 19785
Desc: 19786
- Title: 3
Name: 19787
Desc: 19788
- Title: 3
Name: 19789
Desc: 19790
- Title: 3
Name: 19791
Desc: 19792
- Title: 3
Name: 19793
Desc: 19794
- Title: 4
Name: 19795
Desc: 19796
- Title: 2
Name: 19797
Desc: 19779
- Title: 2
Name: 19798
Desc: 19825
- Title: 9
Name: 19803
Desc: 19804
- Title: 7
Name: 19693
Desc: 19775
- Title: 6
Name: 19799
Desc: 19800
- Title: 6
Name: 19801
Desc: 19802
- Title: 8
Name: 19805
Desc: 19806
- Title: 8
Name: 19807
Desc: 19808
- Title: 8
Name: 19809
Desc: 19810
- Title: 8
Name: 19811
Desc: 19831
- Title: 8
Name: 19832
Desc: 19833

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 72c89fc3c3f142b4d9ffdbfafab5c855
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a4c68b7024224354ebec215dbba705db
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,362 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5306546940058407719
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3408502897844377323}
- component: {fileID: 6674197759160271257}
- component: {fileID: 7328971708598187201}
- component: {fileID: -3298939183023164309}
m_Layer: 5
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3408502897844377323
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5306546940058407719}
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: 4455497386401374214}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -173.10591, y: -0.000030515}
m_SizeDelta: {x: 264.1486, y: 38.467}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6674197759160271257
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5306546940058407719}
m_CullTransparentMesh: 1
--- !u!114 &7328971708598187201
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5306546940058407719}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u5929\u706B\u4EBA\u96EA\u7CD5"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: ce4904f8ddac15944907907115531ad5, type: 2}
m_sharedMaterial: {fileID: 1214840240034325189, guid: ce4904f8ddac15944907907115531ad5, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4282532418
m_fontColor: {r: 0.2578616, g: 0.2578616, b: 0.2578616, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 22
m_fontSizeBase: 22
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 22
m_fontStyle: 0
m_HorizontalAlignment: 4
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &-3298939183023164309
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5306546940058407719}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 19773
FontID: 0
TextCfg: []
--- !u!1 &7122684662496446159
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2593814250252865707}
- component: {fileID: 2305793610170850435}
- component: {fileID: 7271117589443110157}
- component: {fileID: 7237494770023455056}
m_Layer: 5
m_Name: GameObject (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2593814250252865707
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7122684662496446159}
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: 4455497386401374214}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 165.03, y: -0.000030515}
m_SizeDelta: {x: 309.46, y: 38.467}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2305793610170850435
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7122684662496446159}
m_CullTransparentMesh: 1
--- !u!114 &7271117589443110157
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7122684662496446159}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u6E38\u620F\u8BBE\u8BA1/\u5F00\u53D1/\u7F8E\u672F/UI/\u6587\u6848"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8e119f168f1a6b745be02ef19f51610f, type: 2}
m_sharedMaterial: {fileID: -8081454072124122709, guid: 8e119f168f1a6b745be02ef19f51610f, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4286743170
m_fontColor: {r: 0.509434, g: 0.509434, b: 0.509434, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 22
m_fontSizeBase: 22
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 22
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &7237494770023455056
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7122684662496446159}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 19774
FontID: 0
TextCfg: []
--- !u!1 &7275142870992623700
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4455497386401374214}
- component: {fileID: 4275142870992623700}
m_Layer: 5
m_Name: UIOutsideAboutStaffLine
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4455497386401374214
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7275142870992623700}
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: 3408502897844377323}
- {fileID: 2593814250252865707}
m_Father: {fileID: 0}
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: 639.53, y: 38.4672}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4275142870992623700
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7275142870992623700}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a3c9b4e5d2f481a8e6f1b2c3d4e5f02, type: 3}
m_Name:
m_EditorClassIdentifier:
NameText: {fileID: 7328971708598187201}
DescText: {fileID: 7271117589443110157}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e8f43b5eac5729b47b8d3775131ecec9
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,206 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &408775472683250685
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5562230839033475289}
- component: {fileID: 4408775472683250685}
m_Layer: 5
m_Name: UIOutsideAboutStaffTitleLine
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5562230839033475289
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 408775472683250685}
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: 8957127559858992946}
m_Father: {fileID: 0}
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: 639.53, y: 51.739}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4408775472683250685
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 408775472683250685}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a3c9b4e5d2f481a8e6f1b2c3d4e5f01, type: 3}
m_Name:
m_EditorClassIdentifier:
TitleText: {fileID: 3595086980919696702}
--- !u!1 &7341368599884183201
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8957127559858992946}
- component: {fileID: 3548745366538496359}
- component: {fileID: 3595086980919696702}
- component: {fileID: -5120541445398807412}
m_Layer: 5
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8957127559858992946
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7341368599884183201}
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: 5562230839033475289}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 621.0769, y: 57.2392}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3548745366538496359
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7341368599884183201}
m_CullTransparentMesh: 1
--- !u!114 &3595086980919696702
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7341368599884183201}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u97F3\u4E50&\u97F3\u6548"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: ce4904f8ddac15944907907115531ad5, type: 2}
m_sharedMaterial: {fileID: 1214840240034325189, guid: ce4904f8ddac15944907907115531ad5, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4286199612
m_fontColor: {r: 0.23529413, g: 0.21568629, b: 0.4784314, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 22
m_fontSizeBase: 22
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &-5120541445398807412
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7341368599884183201}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 19775
FontID: 0
TextCfg: []

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 943e965915025bc48989496391c23019
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -4364,12 +4364,84 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: 1587307805496131294, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: -4652528632386102149}
- targetCorrespondingSourceObject: {fileID: 638888629593181178, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: -3951142880580769630}
- targetCorrespondingSourceObject: {fileID: 5240566880216800156, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: 2575974305937779158}
- targetCorrespondingSourceObject: {fileID: 3339048183292520057, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: 2664713409092711742}
- targetCorrespondingSourceObject: {fileID: 1485949646938022227, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: 7974602602961491175}
- targetCorrespondingSourceObject: {fileID: 2637052484218034586, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: 3886389279204164388}
- targetCorrespondingSourceObject: {fileID: 2008450765919396854, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: -6742229696664827499}
- targetCorrespondingSourceObject: {fileID: 671544646025808179, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: -2502285299729673575}
- targetCorrespondingSourceObject: {fileID: 1009781454029594320, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
insertIndex: -1
addedObject: {fileID: 7596442569041387132}
m_SourcePrefab: {fileID: 100100000, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
--- !u!224 &1486127346949497132 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4735088385716738539, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2131217412642415451 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 5240566880216800156, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &2575974305937779158
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2131217412642415451}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 289
FontID: 0
TextCfg: []
--- !u!1 &4735119850677590420 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1485949646938022227, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &7974602602961491175
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4735119850677590420}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 19821
FontID: 0
TextCfg: []
--- !u!1 &4841054263471719961 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1587307805496131294, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
@ -4405,6 +4477,102 @@ MonoBehaviour:
LineSpacing: 0
ApplyParagraphSpacing: 0
ParagraphSpacing: 0
--- !u!1 &5689966534960536369 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2008450765919396854, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &-6742229696664827499
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5689966534960536369}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 294
FontID: 0
TextCfg: []
--- !u!1 &6569300362529105431 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1009781454029594320, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &7596442569041387132
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6569300362529105431}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 19822
FontID: 0
TextCfg: []
--- !u!1 &6663198184287597044 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 671544646025808179, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &-2502285299729673575
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6663198184287597044}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 295
FontID: 0
TextCfg: []
--- !u!1 &6770151506938327869 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 638888629593181178, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &-3951142880580769630
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6770151506938327869}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 19830
FontID: 0
TextCfg: []
--- !u!114 &7377197744426511123 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 3695400844062659540, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
@ -4416,6 +4584,54 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: e9fe05490c8fe3a49ad2e2e2fd413df3, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &8192347326634975581 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2637052484218034586, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &3886389279204164388
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8192347326634975581}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 290
FontID: 0
TextCfg: []
--- !u!1 &8898848566735412926 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3339048183292520057, guid: 7ef51c9dc8d0c5248942738961b531fe, type: 3}
m_PrefabInstance: {fileID: 6136613255588772039}
m_PrefabAsset: {fileID: 0}
--- !u!114 &2664713409092711742
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8898848566735412926}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 293
FontID: 0
TextCfg: []
--- !u!1001 &6359307179058667278
PrefabInstance:
m_ObjectHideFlags: 0

View File

@ -3242,7 +3242,7 @@ RectTransform:
m_Father: {fileID: 658324326176829061}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -65.503784, y: -960}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
@ -3796,7 +3796,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 83.23, y: -0.000091552734}
m_SizeDelta: {x: 166.46, y: 0}
m_SizeDelta: {x: 166.46, y: 59.733}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &2400551985836425900
MonoBehaviour:
@ -4556,7 +4556,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 83.23, y: -0.000091552734}
m_SizeDelta: {x: 166.46, y: 0}
m_SizeDelta: {x: 166.46, y: 59.733}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &5532509308171059431
MonoBehaviour:
@ -6149,6 +6149,171 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &1832461506920246464
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1976239420967873335}
- component: {fileID: 999605555353901667}
- component: {fileID: 3018666447782974332}
- component: {fileID: 8406492109279994812}
m_Layer: 5
m_Name: ModListTitle (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1976239420967873335
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1832461506920246464}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.00008, y: 1.00008, z: 1.00008}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7279650132883757932}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 546.04, y: -354}
m_SizeDelta: {x: 668.12, y: 39.221}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &999605555353901667
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1832461506920246464}
m_CullTransparentMesh: 1
--- !u!114 &3018666447782974332
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1832461506920246464}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u76F8\u540C\u7FFB\u8BD1\u9879\uFF0C\u4E0A\u65B9\u7684MOD\u5C06\u8986\u76D6\u4E0B\u65B9\u7684MOD"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8e119f168f1a6b745be02ef19f51610f, type: 2}
m_sharedMaterial: {fileID: -8081454072124122709, guid: 8e119f168f1a6b745be02ef19f51610f, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4284835173
m_fontColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 20
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 12
m_fontSizeMax: 20
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 1
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &8406492109279994812
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1832461506920246464}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
m_Name:
m_EditorClassIdentifier:
Ban: 0
NoExport: 0
FontBan: 0
Preset: 0
ID: 19840
FontID: 2
TextCfg:
- Type: 1
ApplyFontSize: 0
FontSize: 24
ApplyCharacterSpacing: 0
CharacterSpacing: 0
ApplyWordSpacing: 0
WordSpacing: 0
ApplyLineSpacing: 0
LineSpacing: 0
ApplyParagraphSpacing: 0
ParagraphSpacing: 0
--- !u!1 &1833348717103739156
GameObject:
m_ObjectHideFlags: 0
@ -7807,7 +7972,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.000002861, y: 0.000028818846}
m_SizeDelta: {x: 0.00010681, y: 10}
m_SizeDelta: {x: 0.00010681, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &852488813056648141
MonoBehaviour:
@ -8420,7 +8585,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.000002861, y: 0.000028818846}
m_SizeDelta: {x: 0.00010681, y: 0}
m_SizeDelta: {x: 0.00010681, y: 10}
m_Pivot: {x: 0, y: 1}
--- !u!114 &2636698054791453582
MonoBehaviour:
@ -10046,9 +10211,9 @@ RectTransform:
m_Father: {fileID: 4084397047757113258}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -8.3629, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!222 &8501016124821370550
CanvasRenderer:
@ -13357,9 +13522,9 @@ RectTransform:
- {fileID: 656169955482693271}
m_Father: {fileID: 3591097763741017271}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 111.03215, y: -29.8665}
m_SizeDelta: {x: 222.0643, y: 59.733}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &767216046778848098
@ -13731,9 +13896,9 @@ RectTransform:
- {fileID: 4034874040368148762}
m_Father: {fileID: 460822364729243544}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 172.4234, y: -29.8665}
m_SizeDelta: {x: 344.8468, y: 59.733}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &7648120091579805399
@ -14209,7 +14374,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &8464345181728759303
RectTransform:
m_ObjectHideFlags: 0
@ -14947,8 +15112,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 547.7615, y: 413.72482}
m_SizeDelta: {x: 696.4819, y: 671.0896}
m_AnchoredPosition: {x: 547.7615, y: 392.28305}
m_SizeDelta: {x: 696.4819, y: 628.2095}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8744532048113668264
CanvasRenderer:
@ -15336,7 +15501,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 83.23, y: -0.000091552734}
m_SizeDelta: {x: 166.46, y: 0}
m_SizeDelta: {x: 166.46, y: 59.733}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &2372562429259679674
MonoBehaviour:
@ -16664,9 +16829,9 @@ RectTransform:
- {fileID: 12037518669790445}
m_Father: {fileID: 3457946028282610767}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 111.03215, y: -29.8665}
m_SizeDelta: {x: 222.0643, y: 59.733}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5734839279286010400
@ -18586,7 +18751,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &7279650132883757932
RectTransform:
m_ObjectHideFlags: 0
@ -18602,6 +18767,7 @@ RectTransform:
- {fileID: 2398718429599279309}
- {fileID: 3888154437570661185}
- {fileID: 8681517321909120830}
- {fileID: 1976239420967873335}
- {fileID: 9016698653762726686}
- {fileID: 6937077156553425731}
- {fileID: 824810654683177868}
@ -18645,7 +18811,7 @@ RectTransform:
m_Father: {fileID: 3561218373905709919}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: -65.503784, y: -960}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
@ -20959,9 +21125,9 @@ RectTransform:
- {fileID: 8652061982368378950}
m_Father: {fileID: 8823726147371359793}
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_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 111.03215, y: -29.8665}
m_SizeDelta: {x: 222.0643, y: 59.733}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1896532852177851316
@ -21591,9 +21757,9 @@ RectTransform:
- {fileID: 6463223705121097691}
m_Father: {fileID: 2173028587529751265}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 111.03215, y: -29.8665}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 222.0643, y: 59.733}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4849557949310105883
@ -22207,7 +22373,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 83.23, y: -0.000091552734}
m_SizeDelta: {x: 166.46, y: 59.733}
m_SizeDelta: {x: 166.46, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &4244297049399370593
MonoBehaviour:
@ -23090,9 +23256,9 @@ RectTransform:
m_Father: {fileID: 8770181562458777078}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -8.3629, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!222 &2320321692171427671
CanvasRenderer:
@ -23181,7 +23347,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 83.23, y: -0.000091552734}
m_SizeDelta: {x: 166.46, y: 0}
m_SizeDelta: {x: 166.46, y: 59.733}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &3493450085961203087
MonoBehaviour:
@ -23256,7 +23422,7 @@ RectTransform:
m_Father: {fileID: 9060693738176851498}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: -65.503784, y: -960}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
@ -24802,7 +24968,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.000002861, y: 0.000028818846}
m_SizeDelta: {x: 0.00010681, y: 10}
m_SizeDelta: {x: 0.00010681, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &6945705488271009981
MonoBehaviour:
@ -26068,9 +26234,9 @@ RectTransform:
m_Father: {fileID: 3911526918901232009}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_SizeDelta: {x: -8.3629, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!222 &165601771047519322
CanvasRenderer:

View File

@ -4,6 +4,7 @@ using TH1_Core.Managers;
using TH1_Logic.Config;
using TH1_Logic.Core;
using TH1_Presentation.Sequencer.Task;
using TH1_Renderer;
using TH1_UI.Controller.Info;
using TH1_UI.Controller.Interaction;
using TH1_UI.Core;
@ -113,11 +114,9 @@ namespace TH1_Core.Events
EventManager.Subscribe<HideUITopWin>(HandleHideUITopWin);
EventManager.Subscribe<ShowUITopInvited>(HandleShowUITopInvited);
EventManager.Subscribe<HideUITopInvited>(HandleHideUITopInvited);
// 关卡限制变动统一入口:任何依赖 MatchLimits 的表现端都在此被刷新。
EventManager.Subscribe<OnMatchLimitsChanged>(HandleOnMatchLimitsChanged);
}
/// <summary>
@ -198,8 +197,19 @@ namespace TH1_Core.Events
EventManager.Unsubscribe<HideUITopWin>(HandleHideUITopWin);
EventManager.Unsubscribe<ShowUITopInvited>(HandleShowUITopInvited);
EventManager.Unsubscribe<HideUITopInvited>(HandleHideUITopInvited);
EventManager.Unsubscribe<OnMatchLimitsChanged>(HandleOnMatchLimitsChanged);
}
/// <summary>
/// 关卡限制变动的统一分发入口。任何 MatchLimits 被增/删(目前唯一发送方是 Tutor 任务解除限制)
/// 都会触发这里,依次调用所有依赖 MatchLimits 的表现端的 RefreshLimitEffects()。
/// </summary>
private void HandleOnMatchLimitsChanged(OnMatchLimitsChanged evt)
{
ViewControllerManager.UIBottomBottomBarController?.RefreshLimitEffects();
ViewControllerManager.UIInfoGridInfoController?.RefreshLimitEffects();
MapRenderer.Instance?.InGameBubbleManager?.RefreshLimitEffects();
}
/// <summary>

View File

@ -252,6 +252,13 @@ namespace TH1_Core.Events
public struct UpdateUITopTopBar
{
public UpdateTopBarType UpdateType;
}
//---------------------------------------- 关卡限制变动 -----------------------------
// MapConfig.MatchLimits 列表发生变动时的统一广播事件。
// 当前唯一发送方MatchSettlementInfo.ProcessUnlockLimitsTutor 任务完成解除限制时)。
// 订阅方UIEventManagerBinder 集中调用各表现端的 RefreshLimitEffects()。
// 任何新增的限制相关表现端(按钮显示/气泡/可点击区域等)都应订阅此事件,避免出现"AfterMatchStart 设置一次后不再刷新"的死锁 bug。
public struct OnMatchLimitsChanged { }
}

View File

@ -0,0 +1,80 @@
using System;
using System.Collections.Generic;
using Logic.Multilingual;
using UnityEngine;
public enum StaffTitleEnum
{
None,
CoreTeam,
GameDesign,
GameArt,
ArtSupport,
GameDesignSupport,
LocalizationSupport,
MusicSound,
SpecialThanks,
GameUI,
}
[Serializable]
[CreateAssetMenu(fileName = "StaffDataAssets", menuName = "TH1 Game Data/Staff Data Asset")]
public class StaffDataAssets : ScriptableObject
{
// 头衔配置: 每个 StaffTitleEnum 对应一个多语言显示名(如 "核心团队" / "Core Team")
public List<StaffTitleInfo> StaffTitleInfoList = new List<StaffTitleInfo>();
// 名单本体: 每个成员一行
public List<StaffItem> StaffList = new List<StaffItem>();
/// <summary>
/// 通过头衔枚举查询头衔信息(显示名)
/// </summary>
public bool GetStaffTitleInfo(StaffTitleEnum title, out StaffTitleInfo info)
{
info = null;
foreach (var t in StaffTitleInfoList)
{
if (t.Title == title)
{
info = t;
return true;
}
}
return false;
}
/// <summary>
/// 按头衔分组取出名单(按 StaffList 原顺序保留)
/// </summary>
public List<StaffItem> GetStaffItemsByTitle(StaffTitleEnum title)
{
var ret = new List<StaffItem>();
foreach (var s in StaffList)
{
if (s.Title == title) ret.Add(s);
}
return ret;
}
}
[Serializable]
public class StaffTitleInfo
{
public StaffTitleEnum Title;
[MultilingualField]
public string Name;
}
[Serializable]
public class StaffItem
{
public StaffTitleEnum Title;
[MultilingualField]
public string Name;
[MultilingualField]
public string Desc;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5dbf20049d196f448ae1987f7096b7d9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -98,6 +98,7 @@ public class Table
public MomentDataAssets MomentDataAssets;
public CultureCardDataAssets CultureCardDataAssets;
public MusicDataAssets MusicDataAssets;
public StaffDataAssets StaffDataAssets;
public WikiData WikiData;
@ -150,6 +151,7 @@ public class Table
MomentDataAssets = Resources.Load<MomentDataAssets>("Export/MomentDataAssets");
CultureCardDataAssets = Resources.Load<CultureCardDataAssets>("Export/CultureCardDataAssets");
MusicDataAssets = Resources.Load<MusicDataAssets>("Export/MusicDataAssets");
StaffDataAssets = Resources.Load<StaffDataAssets>("Export/StaffDataAssets");
//不用多语言导表

View File

@ -368,6 +368,11 @@ namespace Logic.Editor
taskInfo.CustomDesc = EditorGUILayout.TextField(taskInfo.CustomDesc ?? string.Empty, GUILayout.Width(300));
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
InspectorUtils.InspectorTextWidthRich("自定义Hint(空=用默认):");
taskInfo.CustomHint = EditorGUILayout.TextField(taskInfo.CustomHint ?? string.Empty, GUILayout.Width(300));
EditorGUILayout.EndHorizontal();
// 解除限制列表(仅 Tutor 模式生效,其他模式忽略)
if (taskInfo.UnlockLimits == null) taskInfo.UnlockLimits = new List<MatchLimitType>();
EditorGUILayout.BeginHorizontal();

View File

@ -1434,12 +1434,17 @@ namespace Logic.Editor
{
speaker = getSpeakerMethod.Invoke(asset, null) as string;
}
foreach (var field in fields)
{
var value = field.GetValue(asset);
var attr = field.GetCustomAttribute<MultilingualFieldAttribute>();
var fieldDesc = GetFieldDesc(assetType, field, descPrefix);
// 临时诊断:定位 CustomHint 是否被扫到
if (field.Name == "CustomHint" || field.Name == "CustomDesc")
{
Debug.Log($"[MultiLingExport-Traverse] field={field.Name} attr={(attr != null)} valueType={value?.GetType().Name ?? "null"} value='{value}' descPrefix='{descPrefix}'");
}
if (attr != null)
{
if (value is string s)

View File

@ -10,6 +10,8 @@ using System.Collections.Generic;
using Logic.CrashSight;
using MemoryPack;
using RuntimeData;
using TH1_Core.Events;
using TH1_Core.Managers;
using TH1_Logic.Collect;
@ -387,6 +389,9 @@ namespace TH1_Logic.MatchConfig
var limits = map.MapConfig.MatchLimits;
if (limits == null) return;
// 追踪是否实际有限制被移除,仅在真正变动时广播 OnMatchLimitsChanged
// 避免每次 Refresh 都发空事件让 UI 做无意义刷新。
bool anyRemoved = false;
foreach (var settlement in selfGroup.Settlements)
{
if (settlement?.Tasks == null) continue;
@ -398,11 +403,13 @@ namespace TH1_Logic.MatchConfig
foreach (var limit in task.UnlockLimits)
{
limits.Remove(limit);
if (limits.Remove(limit)) anyRemoved = true;
}
task.UnlockLimits.Clear();
}
}
if (anyRemoved) EventManager.Publish(new OnMatchLimitsChanged());
}
}

View File

@ -64,6 +64,9 @@ namespace TH1_Logic.MatchConfig
// 完成时会从 MapData.MapConfig.MatchLimits 移除对应限制,然后清空本列表(消耗式,幂等)。
// ⚠️ MemoryPack 字段必须追加在末尾。
public List<MatchLimitType> UnlockLimits;
// 自定义任务 Hint 描述(鼠标悬停显示的详细说明)。空字符串 = 使用 PlayerTaskData.HintDesc 默认。
// ⚠️ MemoryPack 字段必须追加在末尾。
[MultilingualField] public string CustomHint;
[MemoryPackConstructor]
public PlayerTaskInfo()
@ -80,6 +83,7 @@ namespace TH1_Logic.MatchConfig
Param4 = taskInfo.Param4;
Order = taskInfo.Order;
CustomDesc = taskInfo.CustomDesc;
CustomHint = taskInfo.CustomHint;
UnlockLimits = taskInfo.UnlockLimits == null
? null
: new List<MatchLimitType>(taskInfo.UnlockLimits);
@ -97,6 +101,7 @@ namespace TH1_Logic.MatchConfig
Param4 = copyData.Param4;
Order = copyData.Order;
CustomDesc = copyData.CustomDesc;
CustomHint = copyData.CustomHint;
UnlockLimits = copyData.UnlockLimits == null
? null
: new List<MatchLimitType>(copyData.UnlockLimits);
@ -112,6 +117,7 @@ namespace TH1_Logic.MatchConfig
Param4 = copyData.Param4;
Order = copyData.Order;
CustomDesc = copyData.CustomDesc;
CustomHint = copyData.CustomHint;
if (copyData.UnlockLimits == null)
{
UnlockLimits = null;

View File

@ -99,6 +99,17 @@ namespace TH1_Renderer
ClearAllRenderer();
}
/// <summary>
/// 关卡限制变动时OnMatchLimitsChanged的统一刷新入口。
/// bubble 由每帧 Update 自然刷新,所以本方法当前为空实现——保留它是为了:
/// 1) 让 UIEventManagerBinder 能把 bubble 也纳入"统一入口"派发;
/// 2) 万一未来 Update 改为非每帧驱动,可以在此立即触发一次 bubble 重算。
/// </summary>
public void RefreshLimitEffects()
{
// 当前 Update 已经每帧刷新 bubble无需在此重复触发。
}
public void ClearAllRenderer()
{
foreach (var t in _dict)
@ -305,8 +316,8 @@ namespace TH1_Renderer
// Tutor 模式 PlayerCannotSelectHero 限制:屏蔽 HeroSelect 气泡入口。
// 与底部栏 Hero 按钮的限制保持一致,避免玩家绕开按钮屏蔽从地图气泡进入英雄界面。
// 此函数同时被 TurnStartSetBubble 和 RefreshBubbles 调用,所以限制运行时被
// 任务的 UnlockLimits 解除后,下一帧 RefreshBubbles 自然放开 bubble无需额外刷新事件
// 限制运行时被任务解除后,由 OnMatchLimitsChanged 事件统一驱动;同时每帧 Update 也会
// 自然刷新 bubble事件回调作为正式接入点保留见 RefreshLimitEffects
if (mapData.MatchSettlement != null &&
mapData.MatchSettlement.SettlementType == MatchSettlementType.Tutor &&
mapData.MapConfig?.MatchLimits != null &&

View File

@ -154,7 +154,19 @@ namespace TH1_UI.Controller.Bottom
public override void AfterMatchStart()
{
if(Main.MapData == null)return;
RefreshLimitEffects();
}
/// <summary>
/// 根据当前 MatchLimits 重新评估底栏按钮的显示状态。
/// 调用时机AfterMatchStart初始化+ OnMatchLimitsChanged 事件(任务解除限制时)。
/// 关键 bug 修复点:原本只在 AfterMatchStart 跑一次Tutor 任务解除 PlayerCannotNextTurn 后按钮不刷新,
/// 玩家无法点 NextTurn 进入下一回合(死锁)。改为统一入口后由事件驱动。
/// </summary>
public void RefreshLimitEffects()
{
if (Main.MapData == null) return;
if (WindowScript == null) return;
bool ShowTech = true;
bool ShowHero = true;
bool ShowTab = true;

View File

@ -91,6 +91,17 @@ namespace TH1_UI.Controller.Info
if (WindowScript != null)
WindowScript.RefreshActionPoints(unitData);
}
/// <summary>
/// 关卡限制变动时OnMatchLimitsChanged的统一刷新入口。
/// 当 GridInfo 面板正在显示时,用上次 Open 的参数重新 SetContent让 Action 列表等
/// 依赖 MatchLimits 的内容立即生效。面板未显示时直接跳过——下次 Open 时自然会用新规则。
/// </summary>
public void RefreshLimitEffects()
{
if (!IsShow()) return;
ApplyContent();
}
void _OnBtnCloseClick()
{

View File

@ -85,6 +85,11 @@ namespace UI.HintUI
[Tooltip("类型是playerTask时,使用此数据")]
public PlayerTaskType PlayerTaskType;
// 运行时由 UIBottomTutorMissionRow 注入:当任务实例的 CustomHint 非空时,
// 优先用它替代 PlayerTaskData.HintDesc。空字符串走默认。
// 不参与 Inspector 序列化,避免被 prefab 持久化。
[System.NonSerialized] public string PlayerTaskCustomHint;
[Tooltip("当类型为WikiData时使用此Id查找Wiki条目")]
public uint WikiId;
// 用于 CityUpgradeHintData (注意:我根据推断为您增加了这个字段)
@ -161,7 +166,10 @@ namespace UI.HintUI
IsDecode = true;
break;
case HintDataType.PlayerTaskData:
if (Table.Instance.PlayerTaskDataAssets.GetPlayerTaskData(PlayerTaskType, out var playerTaskData))
// 关卡任务实例的 CustomHint 优先;空则走 PlayerTaskData.HintDesc 默认
if (!string.IsNullOrEmpty(PlayerTaskCustomHint))
ret = PlayerTaskCustomHint;
else if (Table.Instance.PlayerTaskDataAssets.GetPlayerTaskData(PlayerTaskType, out var playerTaskData))
ret = playerTaskData.HintDesc;
break;
case HintDataType.WikiData:
@ -230,6 +238,9 @@ namespace UI.HintUI
return false;
case HintDataType.PlayerTaskData:
// CustomHint 优先也是多语言ID用于 SubId 展开
if (!string.IsNullOrEmpty(PlayerTaskCustomHint))
return uint.TryParse(PlayerTaskCustomHint, out descId);
if (Table.Instance.PlayerTaskDataAssets.GetPlayerTaskData(PlayerTaskType, out var ptData))
return uint.TryParse(ptData.HintDesc, out descId);
return false;

View File

@ -56,6 +56,8 @@ namespace TH1_UI.View.Info
{
HintTrigger.DataProvider.HintDataType = HintDataType.PlayerTaskData;
HintTrigger.DataProvider.PlayerTaskType = taskData?.PlayerTaskType ?? PlayerTaskType.None;
// CustomHint 非空时由 HintDataProvider 优先使用,空则走 PlayerTaskData.HintDesc 默认
HintTrigger.DataProvider.PlayerTaskCustomHint = taskInfo.CustomHint;
}
Point.color = taskInfo.IsSuccess ? GreenColor : GrayColor;

View File

@ -0,0 +1,20 @@
using Logic.Multilingual;
using TMPro;
using UnityEngine;
namespace TH1_UI.View.Outside
{
// 关于面板里的 staff 单人行
public class UIOutsideAboutStaffLineMono : MonoBehaviour
{
public TextMeshProUGUI NameText;
public TextMeshProUGUI DescText;
public void SetContent(StaffItem item)
{
if (item == null) return;
MultilingualManager.Instance.SetUIText(NameText, item.Name);
MultilingualManager.Instance.SetUIText(DescText, item.Desc);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7a3c9b4e5d2f481a8e6f1b2c3d4e5f02
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,26 @@
using Logic.Multilingual;
using TMPro;
using UnityEngine;
namespace TH1_UI.View.Outside
{
// 关于面板里的 staff 头衔分组行
public class UIOutsideAboutStaffTitleLineMono : MonoBehaviour
{
public TextMeshProUGUI TitleText;
public void SetContent(StaffTitleEnum title)
{
if (Table.Instance.StaffDataAssets != null &&
Table.Instance.StaffDataAssets.GetStaffTitleInfo(title, out var info) &&
info != null)
{
MultilingualManager.Instance.SetUIText(TitleText, info.Name);
}
else
{
TitleText.text = title.ToString();
}
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7a3c9b4e5d2f481a8e6f1b2c3d4e5f01
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -35,14 +35,32 @@ namespace TH1_UI.View.Outside
public AnimancerComponent Animancer;
public Button CloseButton;
public Button BlockButton;
public TextMeshProUGUI VersionLabel;
public TextMeshProUGUI VersionLabel;
[Header("外链")]
public Button BilibiliButton;
public string BilibiliUrl = "https://space.bilibili.com/3546860362926973";
public Button WebsiteButton;
public string WebsiteUrl = "https://tohotopia.com";
public Button XButton;
public string XUrl = "https://x.com/tohotopia";
public Button YoutubeButton;
public string YoutubeUrl = "https://youtube.com/@tohotopia";
public Button DiscordButton;
public string DiscordUrl = "https://discord.gg/wu2T3FCwCC";
[Header("Staff")]
public RectTransform StaffArea;
public UIOutsideAboutStaffTitleLineMono StaffTitlePrefab;
public UIOutsideAboutStaffLineMono StaffLinePrefab;
private readonly List<GameObject> _spawnedStaffNodes = new List<GameObject>();
//关闭时执行的委托
public ViDelegateAssisstant.Dele OnBtnCloseClick;
//开始游戏时执行的委托(目前委托内容就是执行controller的Close())
public ViDelegateAssisstant.Dele OnStartGame;
public void OnInit()
{
CloseButton.onClick.RemoveAllListeners();
@ -50,7 +68,55 @@ namespace TH1_UI.View.Outside
BlockButton.onClick.RemoveAllListeners();
BlockButton.onClick.AddListener(OnClose);
gameObject.SetActive(false);
VersionLabel.text = "Demo V" + ConfigManager.Instance.VersionCfg.CurVersionInfo.FullVersion;
if (VersionLabel != null)
VersionLabel.text = "Demo V" + ConfigManager.Instance.VersionCfg.CurVersionInfo.FullVersion;
BindUrlButton(BilibiliButton, BilibiliUrl);
BindUrlButton(WebsiteButton, WebsiteUrl);
BindUrlButton(XButton, XUrl);
BindUrlButton(YoutubeButton, YoutubeUrl);
BindUrlButton(DiscordButton, DiscordUrl);
BuildStaffList();
}
// 通用外链按钮绑定: button 可为空(没在 prefab 上挂引用就跳过)
private void BindUrlButton(Button button, string url)
{
if (button == null) return;
button.onClick.RemoveAllListeners();
button.onClick.AddListener(() =>
{
if (!string.IsNullOrEmpty(url))
Application.OpenURL(url);
});
}
// 按 StaffList 顺序生成 staff 行: 相邻同 title 共用一个 title 行
private void BuildStaffList()
{
if (StaffArea == null || StaffLinePrefab == null || StaffTitlePrefab == null) return;
foreach (var go in _spawnedStaffNodes)
if (go != null) Destroy(go);
_spawnedStaffNodes.Clear();
var asset = Table.Instance?.StaffDataAssets;
if (asset == null) return;
var prevTitle = StaffTitleEnum.None;
bool hasPrev = false;
foreach (var item in asset.StaffList)
{
if (!hasPrev || item.Title != prevTitle)
{
var titleGo = Instantiate(StaffTitlePrefab, StaffArea);
titleGo.SetContent(item.Title);
_spawnedStaffNodes.Add(titleGo.gameObject);
prevTitle = item.Title;
hasPrev = true;
}
var lineGo = Instantiate(StaffLinePrefab, StaffArea);
lineGo.SetContent(item);
_spawnedStaffNodes.Add(lineGo.gameObject);
}
}
public void Open()

13
Unity/check_bytes.ps1 Normal file
View File

@ -0,0 +1,13 @@
param()
$kwStr = -join @([char]0x6539, [char]0x9020, [char]0x519C, [char]0x7530)
$files = @('Assets\Resources\MatchLevelData\LevelData.bytes', 'Assets\Resources\MatchLevelData\ExportLevelData.bytes')
foreach ($f in $files) {
if (-not (Test-Path $f)) {
Write-Host ($f + ' MISSING')
continue
}
$bytes = [System.IO.File]::ReadAllBytes($f)
$text = [System.Text.Encoding]::UTF8.GetString($bytes)
$found = $text.Contains($kwStr)
Write-Host ('[' + $f + '] size=' + $bytes.Length + ' found=' + $found)
}

File diff suppressed because it is too large Load Diff