diff --git a/Assets/GameContent/Feature_Memory/Configs.meta b/Assets/GameContent/Feature_Memory/Configs.meta new file mode 100644 index 000000000..c7887e403 --- /dev/null +++ b/Assets/GameContent/Feature_Memory/Configs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a2132c2d5c633c439f3ae39a6edd5f5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameContent/Feature_Memory/Configs/PunchTapeCatalog.asset b/Assets/GameContent/Feature_Memory/Configs/PunchTapeCatalog.asset new file mode 100644 index 000000000..29c0f4948 --- /dev/null +++ b/Assets/GameContent/Feature_Memory/Configs/PunchTapeCatalog.asset @@ -0,0 +1,43 @@ +%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: 473f2b987f7c6ab40875d33a8ffe67a6, type: 3} + m_Name: PunchTapeCatalog + m_EditorClassIdentifier: + definitions: + - id: eye_sky + displayNameParam: "l10n.\u5929\u7A7A" + dialogNode: "\u5929\u7A7A" + memoryResourceKey: liuying1-3 + visibilityCode: VIS + contentId: XF_42 + timecode: +69,178:08 + - id: eye_poster + displayNameParam: "l10n.\u6D77\u62A5" + dialogNode: "\u6D77\u62A5" + memoryResourceKey: liuying1-1 + visibilityCode: VIS + contentId: XF_42 + timecode: +69,178:08 + - id: eye_plant + displayNameParam: "l10n.\u690D\u7269" + dialogNode: "\u690D\u7269" + memoryResourceKey: liuying1-2 + visibilityCode: VIS + contentId: XF_42 + timecode: +69,178:08 + - id: memory_friend + displayNameParam: "l10n.\u670B\u53CB" + dialogNode: "\u670B\u53CB" + memoryResourceKey: shitou_0 + visibilityCode: VIS + contentId: XF_42 + timecode: +69,178:08 diff --git a/Assets/GameContent/Feature_Memory/Configs/PunchTapeCatalog.asset.meta b/Assets/GameContent/Feature_Memory/Configs/PunchTapeCatalog.asset.meta new file mode 100644 index 000000000..7abd6d5ee --- /dev/null +++ b/Assets/GameContent/Feature_Memory/Configs/PunchTapeCatalog.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 29681a1db9007e74c9b9c5b5c4a65472 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeCanvas.prefab b/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeCanvas.prefab index 35324eaac..f575c9de3 100644 --- a/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeCanvas.prefab +++ b/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeCanvas.prefab @@ -397,9 +397,7 @@ MonoBehaviour: isOccupied: 0 isLocked: 0 punchTape: - Category: - ClueName: - MemoryIndex: + DefinitionId: used: 0 --- !u!1 &3956584441018265297 GameObject: @@ -1087,6 +1085,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: punchTapecluePrefab: {fileID: 3457193455862942040, guid: a2f52b86a062e6344ad9fc7fcf08d8a4, type: 3} + punchTapeCatalog: {fileID: 11400000, guid: 29681a1db9007e74c9b9c5b5c4a65472, type: 2} favoritesPanel: {fileID: 4615189240966886641} punchTapePrinter: {fileID: 2899050397419733819} --- !u!1 &5823214307061922822 diff --git a/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeForMem.prefab b/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeForMem.prefab index b2c2071cd..86eb6b864 100644 --- a/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeForMem.prefab +++ b/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeForMem.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &2143112861795894348 +--- !u!1 &1983072188279502699 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,7 +8,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7898913313812929341} + - component: {fileID: 3378983742350910822} + - component: {fileID: 1251086647012318594} + - component: {fileID: 4681274069821352667} m_Layer: 5 m_Name: Info m_TagString: Untagged @@ -16,26 +18,67 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &7898913313812929341 +--- !u!224 &3378983742350910822 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2143112861795894348} + m_GameObject: {fileID: 1983072188279502699} 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: 7924894876819984995} - m_Father: {fileID: 6036857918381590041} + - {fileID: 3883927034771991386} + - {fileID: 8393076920820533167} + - {fileID: 4310153193990193114} + - {fileID: 6391921364737745109} + m_Father: {fileID: 4993650456917624668} 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: 56} - m_SizeDelta: {x: 400, y: 38} - m_Pivot: {x: 0.5, y: 0.5} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &1251086647012318594 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1983072188279502699} + m_CullTransparentMesh: 1 +--- !u!114 &4681274069821352667 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1983072188279502699} + 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.23137255, g: 0.23137255, b: 0.23137255, a: 1} + m_RaycastTarget: 0 + 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 &2260198552944312515 GameObject: m_ObjectHideFlags: 0 @@ -68,7 +111,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4993650456917624668} - - {fileID: 7898913313812929341} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} @@ -101,7 +143,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: clueImageUI: {fileID: 7075144331494489462} - nameText: {fileID: 3293312212471079921} + nameText: {fileID: 5357701920606539211} + memoryIndexLabelText: {fileID: 546597375740927527} + visibilityText: {fileID: 0} + contentIdText: {fileID: 2103745431790067945} + timecodeText: {fileID: 0} used: 0 --- !u!114 &565462480347658120 MonoBehaviour: @@ -116,6 +162,356 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: isFavorited: 0 +--- !u!1 &3333778913085071054 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4310153193990193114} + - component: {fileID: 6236610923486505318} + - component: {fileID: 3944746740796360032} + - component: {fileID: 546597375740927527} + m_Layer: 5 + m_Name: MemoryIndexLabelText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4310153193990193114 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3333778913085071054} + 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: 3378983742350910822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 107.3, y: -4} + m_SizeDelta: {x: 106, y: 20} + m_Pivot: {x: 0, y: 1} +--- !u!222 &6236610923486505318 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3333778913085071054} + m_CullTransparentMesh: 1 +--- !u!114 &3944746740796360032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3333778913085071054} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292927712 + m_fontColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 0 + 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 &546597375740927527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3333778913085071054} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: UIText + m_TableEntryReference: + m_KeyId: 0 + m_Key: memory_index_label + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3944746740796360032} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] +--- !u!1 &3722992061438554525 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8393076920820533167} + - component: {fileID: 5767182794232761783} + - component: {fileID: 2969344468487763321} + - component: {fileID: 5357701920606539211} + m_Layer: 5 + m_Name: NameText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8393076920820533167 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3722992061438554525} + 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: 3378983742350910822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 34, y: -3} + m_SizeDelta: {x: 112, y: 43} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5767182794232761783 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3722992061438554525} + m_CullTransparentMesh: 1 +--- !u!114 &2969344468487763321 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3722992061438554525} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292927712 + m_fontColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, 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: 26 + m_fontSizeBase: 26 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 0 + 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 &5357701920606539211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3722992061438554525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: UIText + m_TableEntryReference: + m_KeyId: 0 + m_Key: punchtype_name + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2969344468487763321} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] --- !u!1 &4124022480957499492 GameObject: m_ObjectHideFlags: 0 @@ -145,7 +541,8 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 3378983742350910822} m_Father: {fileID: 6036857918381590041} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -191,7 +588,7 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7643179123736237062 +--- !u!1 &4385383026795205620 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -199,51 +596,50 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7924894876819984995} - - component: {fileID: 8499524202528292966} - - component: {fileID: 7622331551344773496} - - component: {fileID: 3293312212471079921} + - component: {fileID: 3883927034771991386} + - component: {fileID: 3858227927745421549} + - component: {fileID: 4754047594427294279} m_Layer: 5 - m_Name: Name + m_Name: Hash m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &7924894876819984995 +--- !u!224 &3883927034771991386 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7643179123736237062} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 4385383026795205620} + 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: 7898913313812929341} + m_Father: {fileID: 3378983742350910822} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -19.2} - m_SizeDelta: {x: 200, y: 50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8499524202528292966 + m_AnchoredPosition: {x: 18.8, y: -3} + m_SizeDelta: {x: 27, y: 43} + m_Pivot: {x: 0, y: 1} +--- !u!222 &3858227927745421549 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7643179123736237062} + m_GameObject: {fileID: 4385383026795205620} m_CullTransparentMesh: 1 ---- !u!114 &7622331551344773496 +--- !u!114 &4754047594427294279 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7643179123736237062} + m_GameObject: {fileID: 4385383026795205620} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -251,13 +647,13 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: New Text + m_text: '#' m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} @@ -266,8 +662,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} + rgba: 4292927712 + m_fontColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -284,15 +680,15 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 28 - m_fontSizeBase: 28 + m_fontSize: 29 + m_fontSizeBase: 29 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 m_fontSizeMax: 72 - m_fontStyle: 0 + m_fontStyle: 2 m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 + m_VerticalAlignment: 4096 m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 @@ -300,7 +696,7 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 + m_enableWordWrapping: 0 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} @@ -308,7 +704,7 @@ MonoBehaviour: m_enableKerning: 1 m_enableExtraPadding: 0 checkPaddingRequired: 0 - m_isRichText: 1 + m_isRichText: 0 m_parseCtrlCharacters: 1 m_isOrthographic: 1 m_isCullingEnabled: 0 @@ -320,49 +716,143 @@ MonoBehaviour: m_VertexBufferAutoSizeReduction: 0 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 - m_margin: {x: 0, y: 6.3168945, z: -0.080078125, w: 7.2193604} + 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 &3293312212471079921 +--- !u!1 &6431571214809121014 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6391921364737745109} + - component: {fileID: 6685312199246720920} + - component: {fileID: 2103745431790067945} + m_Layer: 5 + m_Name: ContentIdText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6391921364737745109 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6431571214809121014} + 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: 3378983742350910822} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 107.29999, y: -25} + m_SizeDelta: {x: 96, y: 20} + m_Pivot: {x: 0, y: 1} +--- !u!222 &6685312199246720920 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6431571214809121014} + m_CullTransparentMesh: 1 +--- !u!114 &2103745431790067945 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7643179123736237062} + m_GameObject: {fileID: 6431571214809121014} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: - m_StringReference: - m_TableReference: - m_TableCollectionName: GUID:994c69bf4b2403043bc9562f2d24ee56 - m_TableEntryReference: - m_KeyId: 9444022983593984 - m_Key: - m_FallbackState: 0 - m_WaitForCompletion: 0 - m_LocalVariables: [] - m_FormatArguments: [] - m_UpdateString: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 7622331551344773496} - m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro - m_MethodName: set_text - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 1 - references: - version: 2 - RefIds: [] + m_Calls: [] + m_text: 'CID: XF_42//T+: +69,178:08' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292927712 + m_fontColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 0 + 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} diff --git a/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeForPrinter.prefab b/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeForPrinter.prefab index 7af368b72..d3fed0711 100644 --- a/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeForPrinter.prefab +++ b/Assets/GameContent/Feature_Memory/Prefabs/PunchTapeForPrinter.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &2917053924639887462 +--- !u!1 &1855882328860679535 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,51 +8,51 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4951703917379811219} - - component: {fileID: 3996216564447825314} - - component: {fileID: 1936171647708474621} - - component: {fileID: 252923739237564365} + - component: {fileID: 1735929162155226010} + - component: {fileID: 4290291952537394935} + - component: {fileID: 7427280636892754744} + - component: {fileID: 2535407421174719465} m_Layer: 5 - m_Name: Name + m_Name: NameText m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &4951703917379811219 +--- !u!224 &1735929162155226010 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2917053924639887462} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 1855882328860679535} + 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: 7258487465795527054} + m_Father: {fileID: 7765138884032180726} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 144, y: 66} - m_SizeDelta: {x: 200, y: 50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3996216564447825314 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 42.5, y: -3.75} + m_SizeDelta: {x: 140, y: 53.75} + m_Pivot: {x: 0, y: 1} +--- !u!222 &4290291952537394935 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2917053924639887462} + m_GameObject: {fileID: 1855882328860679535} m_CullTransparentMesh: 1 ---- !u!114 &1936171647708474621 +--- !u!114 &7427280636892754744 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2917053924639887462} + m_GameObject: {fileID: 1855882328860679535} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -60,13 +60,13 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: 'ID: {clueName}' + m_text: m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} @@ -75,8 +75,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} + rgba: 4292927712 + m_fontColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -93,15 +93,15 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 36 - m_fontSizeBase: 36 + m_fontSize: 32.5 + m_fontSizeBase: 32.5 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 m_fontSizeMax: 72 m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 @@ -109,7 +109,7 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 + m_enableWordWrapping: 0 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} @@ -117,7 +117,7 @@ MonoBehaviour: m_enableKerning: 1 m_enableExtraPadding: 0 checkPaddingRequired: 0 - m_isRichText: 1 + m_isRichText: 0 m_parseCtrlCharacters: 1 m_isOrthographic: 1 m_isCullingEnabled: 0 @@ -129,19 +129,19 @@ MonoBehaviour: m_VertexBufferAutoSizeReduction: 0 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 - m_margin: {x: -44.701233, y: -6.9536133, z: -256.287, w: 9.933594} + 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 &252923739237564365 +--- !u!114 &2535407421174719465 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2917053924639887462} + m_GameObject: {fileID: 1855882328860679535} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} @@ -149,21 +149,18 @@ MonoBehaviour: m_EditorClassIdentifier: m_StringReference: m_TableReference: - m_TableCollectionName: GUID:994c69bf4b2403043bc9562f2d24ee56 + m_TableCollectionName: UIText m_TableEntryReference: - m_KeyId: 9444022983593984 - m_Key: + m_KeyId: 0 + m_Key: punchtype_name m_FallbackState: 0 m_WaitForCompletion: 0 - m_LocalVariables: - - name: clueName - variable: - rid: 128121030111920135 + m_LocalVariables: [] m_FormatArguments: [] m_UpdateString: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1936171647708474621} + - m_Target: {fileID: 7427280636892754744} m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro m_MethodName: set_text m_Mode: 0 @@ -177,11 +174,7 @@ MonoBehaviour: m_CallState: 1 references: version: 2 - RefIds: - - rid: 128121030111920135 - type: {class: StringVariable, ns: UnityEngine.Localization.SmartFormat.PersistentVariables, asm: Unity.Localization} - data: - m_Value: aaa + RefIds: [] --- !u!1 &3457193455862942040 GameObject: m_ObjectHideFlags: 0 @@ -246,8 +239,321 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: clueImageUI: {fileID: 4059033864694829342} - nameText: {fileID: 252923739237564365} + nameText: {fileID: 2535407421174719465} + memoryIndexLabelText: {fileID: 8552612058226567943} + visibilityText: {fileID: 0} + contentIdText: {fileID: 5001655724959568403} + timecodeText: {fileID: 0} used: 0 +--- !u!1 &3741701920236339108 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3204796158848916013} + - component: {fileID: 3142962418811844898} + - component: {fileID: 1332976215277463070} + - component: {fileID: 8552612058226567943} + m_Layer: 5 + m_Name: MemoryIndexLabelText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3204796158848916013 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3741701920236339108} + 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: 7765138884032180726} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 132.9, y: -5} + m_SizeDelta: {x: 132.5, y: 25} + m_Pivot: {x: 0, y: 1} +--- !u!222 &3142962418811844898 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3741701920236339108} + m_CullTransparentMesh: 1 +--- !u!114 &1332976215277463070 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3741701920236339108} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292927712 + m_fontColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, 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: 15 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 0 + 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 &8552612058226567943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3741701920236339108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: UIText + m_TableEntryReference: + m_KeyId: 0 + m_Key: memory_index_label + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1332976215277463070} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] +--- !u!1 &7246944767526533686 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3379562281184940231} + - component: {fileID: 4917064320485077897} + - component: {fileID: 4202380759987746028} + m_Layer: 5 + m_Name: Hash + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3379562281184940231 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7246944767526533686} + 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: 7765138884032180726} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 24.4, y: -3.75} + m_SizeDelta: {x: 33.75, y: 53.75} + m_Pivot: {x: 0, y: 1} +--- !u!222 &4917064320485077897 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7246944767526533686} + m_CullTransparentMesh: 1 +--- !u!114 &4202380759987746028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7246944767526533686} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: '#' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292927712 + m_fontColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, 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: 36.25 + m_fontSizeBase: 36.25 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 0 + 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!1 &7391900425371338666 GameObject: m_ObjectHideFlags: 0 @@ -278,7 +584,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 4951703917379811219} + - {fileID: 7765138884032180726} m_Father: {fileID: 336632692385338071} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} @@ -324,3 +630,216 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7397972779855668109 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7765138884032180726} + - component: {fileID: 6907571516371422671} + - component: {fileID: 5538227898764784770} + m_Layer: 5 + m_Name: Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7765138884032180726 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397972779855668109} + 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: 3379562281184940231} + - {fileID: 1735929162155226010} + - {fileID: 3204796158848916013} + - {fileID: 5457000544019341646} + m_Father: {fileID: 7258487465795527054} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 62.5} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &6907571516371422671 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397972779855668109} + m_CullTransparentMesh: 1 +--- !u!114 &5538227898764784770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397972779855668109} + 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.23137255, g: 0.23137255, b: 0.23137255, a: 1} + m_RaycastTarget: 0 + 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 &8029021599876852542 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5457000544019341646} + - component: {fileID: 2054489642493287172} + - component: {fileID: 5001655724959568403} + m_Layer: 5 + m_Name: ContentIdText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5457000544019341646 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8029021599876852542} + 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: 7765138884032180726} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 132.90002, y: -31.25} + m_SizeDelta: {x: 120, y: 25} + m_Pivot: {x: 0, y: 1} +--- !u!222 &2054489642493287172 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8029021599876852542} + m_CullTransparentMesh: 1 +--- !u!114 &5001655724959568403 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8029021599876852542} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'CID: XF_42//T+: +69,178:08' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292927712 + m_fontColor: {r: 0.8784314, g: 0.8784314, b: 0.8784314, 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: 15 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 4096 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 0 + 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} diff --git a/Assets/Language/UIText/UIText Shared Data.asset b/Assets/Language/UIText/UIText Shared Data.asset index d4781ce7e..b7ad72e88 100644 --- a/Assets/Language/UIText/UIText Shared Data.asset +++ b/Assets/Language/UIText/UIText Shared Data.asset @@ -239,6 +239,10 @@ MonoBehaviour: m_Key: setting_waitinput m_Metadata: m_Items: [] + - m_Id: 163955010461229056 + m_Key: memory_index_label + m_Metadata: + m_Items: [] m_Metadata: m_Items: [] m_KeyGenerator: diff --git a/Assets/Language/UIText/UIText_en.asset b/Assets/Language/UIText/UIText_en.asset index 6dab7268b..5c56cdad9 100644 --- a/Assets/Language/UIText/UIText_en.asset +++ b/Assets/Language/UIText/UIText_en.asset @@ -253,6 +253,10 @@ MonoBehaviour: m_Localized: SELECT OPERATION m_Metadata: m_Items: [] + - m_Id: 163955010461229056 + m_Localized: Memory Index @VIS + m_Metadata: + m_Items: [] references: version: 2 RefIds: diff --git a/Assets/Language/UIText/UIText_ja-JP.asset b/Assets/Language/UIText/UIText_ja-JP.asset index 3fa6c559d..d8dbb207b 100644 --- a/Assets/Language/UIText/UIText_ja-JP.asset +++ b/Assets/Language/UIText/UIText_ja-JP.asset @@ -242,6 +242,10 @@ MonoBehaviour: m_Localized: "\u64CD\u4F5C\u9078\u629E" m_Metadata: m_Items: [] + - m_Id: 163955010461229056 + m_Localized: "\u8A18\u61B6\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9@VIS" + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/Language/UIText/UIText_zh-Hans.asset b/Assets/Language/UIText/UIText_zh-Hans.asset index 08370f1a3..9d2c253b1 100644 --- a/Assets/Language/UIText/UIText_zh-Hans.asset +++ b/Assets/Language/UIText/UIText_zh-Hans.asset @@ -246,6 +246,10 @@ MonoBehaviour: m_Localized: "\u8BF7\u9009\u62E9\u64CD\u4F5C" m_Metadata: m_Items: [] + - m_Id: 163955010461229056 + m_Localized: "\u8BB0\u5FC6\u7D22\u5F15@VIS" + m_Metadata: + m_Items: [] references: version: 2 RefIds: diff --git a/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs b/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs index c8316a4a5..0f525d281 100644 --- a/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs +++ b/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs @@ -396,8 +396,10 @@ namespace AibisDream.FixSystem if (!useYarn) { - DialogController.Instance.StartDialogNode( - LocalizationKit.GetL10NParamKey(punchTapeSlot.punchTape.ClueName)); + if (!PunchTapeManager.Instance.TryGetDefinition(punchTapeSlot.punchTape, out var definition)) + yield break; + + DialogController.Instance.StartDialogNode(definition.DialogNode); } } @@ -422,6 +424,12 @@ namespace AibisDream.FixSystem _activePunchTape = punchTape; + if (!PunchTapeManager.Instance.TryGetDefinition(_activePunchTape, out var definition)) + { + StartStandbyOverlay(); + yield break; + } + if (isProcessing) { Debug.LogWarning("Already processing a memory. Please wait until the process is finished."); @@ -431,7 +439,7 @@ namespace AibisDream.FixSystem StopStandbyOverlay(); ShowSearchOverlay(); - var searchMemoryKey = string.Format(MemorySpritePath, _activePunchTape.MemoryIndex); + var searchMemoryKey = string.Format(MemorySpritePath, definition.MemoryResourceKey); var searchMemoryHandle = ResourceSystem.LoadAsync(searchMemoryKey); yield return searchMemoryHandle; Sprite memorySprite = searchMemoryHandle.Status == AsyncOperationStatus.Succeeded diff --git a/Assets/Scripts/FixSystem/PunchType.meta b/Assets/Scripts/FixSystem/PunchTape.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType.meta rename to Assets/Scripts/FixSystem/PunchTape.meta diff --git a/Assets/Scripts/FixSystem/PunchType/MemoryPunchTapeSlot.cs b/Assets/Scripts/FixSystem/PunchTape/MemoryPunchTapeSlot.cs similarity index 97% rename from Assets/Scripts/FixSystem/PunchType/MemoryPunchTapeSlot.cs rename to Assets/Scripts/FixSystem/PunchTape/MemoryPunchTapeSlot.cs index caa480884..040428a71 100644 --- a/Assets/Scripts/FixSystem/PunchType/MemoryPunchTapeSlot.cs +++ b/Assets/Scripts/FixSystem/PunchTape/MemoryPunchTapeSlot.cs @@ -145,9 +145,9 @@ namespace AibisDream.FixSystem private void PlayMemory(PunchTape tape) { - if (tape != null) + if (tape != null && PunchTapeManager.Instance.TryGetDefinition(tape, out var definition)) { - Debug.Log("播放记忆:" + tape.MemoryIndex); + Debug.Log("播放记忆:" + definition.MemoryResourceKey); if (memoryManager != null) memoryManager.StartCoroutine(memoryManager.SearchMemory(tape)); } diff --git a/Assets/Scripts/FixSystem/PunchType/MemoryPunchTapeSlot.cs.meta b/Assets/Scripts/FixSystem/PunchTape/MemoryPunchTapeSlot.cs.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/MemoryPunchTapeSlot.cs.meta rename to Assets/Scripts/FixSystem/PunchTape/MemoryPunchTapeSlot.cs.meta diff --git a/Assets/Scripts/FixSystem/PunchTape/PunchTape.cs b/Assets/Scripts/FixSystem/PunchTape/PunchTape.cs new file mode 100644 index 000000000..6a6c4e626 --- /dev/null +++ b/Assets/Scripts/FixSystem/PunchTape/PunchTape.cs @@ -0,0 +1,51 @@ +using System; + +/// +/// 打孔带运行时与存档数据。流程、资源和显示信息统一由 DefinitionId 在 PunchTapeCatalog 中解析。 +/// +namespace AibisDream.FixSystem +{ + [Serializable] + public class PunchTape : IEquatable + { + public string DefinitionId; + public bool used; + + public PunchTape() + { + } + + public PunchTape(string definitionId) + { + DefinitionId = definitionId; + } + + /// 用于收藏列表去重与 UI 行映射(与 Equals 一致)。 + public string GetRowKey() + { + return DefinitionId ?? string.Empty; + } + + public bool Equals(PunchTape other) + { + if (other is null) return false; + if (ReferenceEquals(this, other)) return true; + return string.Equals(DefinitionId, other.DefinitionId, StringComparison.Ordinal); + } + + public override bool Equals(object obj) => Equals(obj as PunchTape); + + public override int GetHashCode() + { + return DefinitionId != null ? StringComparer.Ordinal.GetHashCode(DefinitionId) : 0; + } + + public static bool operator ==(PunchTape left, PunchTape right) + { + if (left is null) return right is null; + return left.Equals(right); + } + + public static bool operator !=(PunchTape left, PunchTape right) => !(left == right); + } +} diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTape.cs.meta b/Assets/Scripts/FixSystem/PunchTape/PunchTape.cs.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTape.cs.meta rename to Assets/Scripts/FixSystem/PunchTape/PunchTape.cs.meta diff --git a/Assets/Scripts/FixSystem/PunchTape/PunchTapeCatalog.cs b/Assets/Scripts/FixSystem/PunchTape/PunchTapeCatalog.cs new file mode 100644 index 000000000..2f9b972b3 --- /dev/null +++ b/Assets/Scripts/FixSystem/PunchTape/PunchTapeCatalog.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace AibisDream.FixSystem +{ + [Serializable] + public sealed class PunchTapeDefinition + { + [SerializeField] private string id; + [SerializeField] private string displayNameParam; + [SerializeField] private string dialogNode; + [SerializeField] private string memoryResourceKey; + [SerializeField] private string visibilityCode; + [SerializeField] private string contentId; + [SerializeField] private string timecode; + + public string Id => id; + public string DisplayNameParam => displayNameParam; + public string DialogNode => dialogNode; + public string MemoryResourceKey => memoryResourceKey; + public string VisibilityCode => visibilityCode; + public string ContentId => contentId; + public string Timecode => timecode; + + public bool TryValidate(out string error) + { + if (string.IsNullOrWhiteSpace(id)) + { + error = "ID 不能为空。"; + return false; + } + + if (string.IsNullOrWhiteSpace(displayNameParam) || + !displayNameParam.StartsWith("l10n.", StringComparison.Ordinal)) + { + error = $"'{id}' 的名称必须配置为 l10n.* 参数键。"; + return false; + } + + if (string.IsNullOrWhiteSpace(dialogNode) || string.IsNullOrWhiteSpace(memoryResourceKey) || + string.IsNullOrWhiteSpace(visibilityCode) || string.IsNullOrWhiteSpace(contentId) || + string.IsNullOrWhiteSpace(timecode)) + { + error = $"'{id}' 存在未填写的流程或显示字段。"; + return false; + } + + error = null; + return true; + } + +#if UNITY_EDITOR + public void ConfigureForEditor(string definitionId, string localizedNameParam, string yarnDialogNode, + string resourceKey, string visibility, string cid, string timestamp) + { + id = definitionId; + displayNameParam = localizedNameParam; + dialogNode = yarnDialogNode; + memoryResourceKey = resourceKey; + visibilityCode = visibility; + contentId = cid; + timecode = timestamp; + } +#endif + } + + [CreateAssetMenu(fileName = "PunchTapeCatalog", menuName = "AibisDream/Memory/Punch Tape Catalog")] + public sealed class PunchTapeCatalog : ScriptableObject + { + [SerializeField] private List definitions = new(); + + private Dictionary definitionById; + + public IReadOnlyList Definitions => definitions; + + public bool TryGetDefinition(string definitionId, out PunchTapeDefinition definition) + { + EnsureLookup(); + if (string.IsNullOrWhiteSpace(definitionId)) + { + definition = null; + return false; + } + + return definitionById.TryGetValue(definitionId, out definition); + } + + public List GetValidationErrors() + { + var errors = new List(); + var ids = new HashSet(StringComparer.Ordinal); + + if (definitions == null || definitions.Count == 0) + { + errors.Add("Catalog 中没有打孔带定义。"); + return errors; + } + + for (var i = 0; i < definitions.Count; i++) + { + var definition = definitions[i]; + if (definition == null) + { + errors.Add($"definitions[{i}] 为空。"); + continue; + } + + if (!definition.TryValidate(out var error)) + errors.Add(error); + + if (!string.IsNullOrWhiteSpace(definition.Id) && !ids.Add(definition.Id)) + errors.Add($"存在重复 ID:'{definition.Id}'。"); + } + + return errors; + } + + private void EnsureLookup() + { + if (definitionById != null) + return; + + definitionById = new Dictionary(StringComparer.Ordinal); + if (definitions == null) + return; + + foreach (var definition in definitions) + { + if (definition == null || string.IsNullOrWhiteSpace(definition.Id) || + definitionById.ContainsKey(definition.Id)) + continue; + + definitionById.Add(definition.Id, definition); + } + } + + private void OnEnable() + { + definitionById = null; + } + +#if UNITY_EDITOR + private void OnValidate() + { + definitionById = null; + } + + public void SetDefinitionsForEditor(IEnumerable newDefinitions) + { + definitions = newDefinitions == null + ? new List() + : new List(newDefinitions); + definitionById = null; + } +#endif + } +} diff --git a/Assets/Scripts/FixSystem/PunchTape/PunchTapeCatalog.cs.meta b/Assets/Scripts/FixSystem/PunchTape/PunchTapeCatalog.cs.meta new file mode 100644 index 000000000..990f6b62c --- /dev/null +++ b/Assets/Scripts/FixSystem/PunchTape/PunchTapeCatalog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 473f2b987f7c6ab40875d33a8ffe67a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeFavoritesPanel.cs b/Assets/Scripts/FixSystem/PunchTape/PunchTapeFavoritesPanel.cs similarity index 97% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeFavoritesPanel.cs rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeFavoritesPanel.cs index a7e48394d..a48f9adc9 100644 --- a/Assets/Scripts/FixSystem/PunchType/PunchTapeFavoritesPanel.cs +++ b/Assets/Scripts/FixSystem/PunchTape/PunchTapeFavoritesPanel.cs @@ -179,7 +179,7 @@ namespace AibisDream.FixSystem rt.localScale = Vector3.one; } - private static void BindRow(GameObject rowGo, PunchTape tape) + private void BindRow(GameObject rowGo, PunchTape tape) { var interaction = rowGo.GetComponent(); if (interaction != null) @@ -189,8 +189,8 @@ namespace AibisDream.FixSystem } var item = rowGo.GetComponent(); - if (item != null) - item.Setup(tape); + if (item != null && PunchTapeManager.TryGetDefinition(tape, out var definition)) + item.Setup(tape, definition); } /// diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeFavoritesPanel.cs.meta b/Assets/Scripts/FixSystem/PunchTape/PunchTapeFavoritesPanel.cs.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeFavoritesPanel.cs.meta rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeFavoritesPanel.cs.meta diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeInteraction.cs b/Assets/Scripts/FixSystem/PunchTape/PunchTapeInteraction.cs similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeInteraction.cs rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeInteraction.cs diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeInteraction.cs.meta b/Assets/Scripts/FixSystem/PunchTape/PunchTapeInteraction.cs.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeInteraction.cs.meta rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeInteraction.cs.meta diff --git a/Assets/Scripts/FixSystem/PunchTape/PunchTapeItem.cs b/Assets/Scripts/FixSystem/PunchTape/PunchTapeItem.cs new file mode 100644 index 000000000..933555f62 --- /dev/null +++ b/Assets/Scripts/FixSystem/PunchTape/PunchTapeItem.cs @@ -0,0 +1,96 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.Localization.Components; +using UnityEngine.Localization; +using UnityEngine.Localization.Settings; +using TMPro; +using AibisDream.Framework; + +/// +/// 收藏夹 / 生成窗口中的打孔带 UI 项。 +/// +namespace AibisDream.FixSystem +{ + public class PunchTapeItem : MonoBehaviour + { + public Image clueImageUI; + public LocalizeStringEvent nameText; + public LocalizeStringEvent memoryIndexLabelText; + public TMP_Text visibilityText; + public TMP_Text contentIdText; + public TMP_Text timecodeText; + + [HideInInspector] + public bool used = false; + + private PunchTape punchTapeData; + private PunchTapeDefinition punchTapeDefinition; + + private void OnEnable() + { + LocalizationSettings.SelectedLocaleChanged += HandleSelectedLocaleChanged; + } + + private void OnDisable() + { + LocalizationSettings.SelectedLocaleChanged -= HandleSelectedLocaleChanged; + } + + public void Setup(PunchTape punchTape, PunchTapeDefinition definition) + { + punchTapeData = punchTape; + punchTapeDefinition = definition; + used = punchTape != null && punchTape.used; + ApplyDisplay(punchTapeData, definition); + } + + private void ApplyDisplay(PunchTape pt, PunchTapeDefinition definition) + { + if (pt == null || definition == null) + { + Debug.LogWarning("PunchTape 或其定义为空,显示已中止。", this); + return; + } + + if (clueImageUI != null) + clueImageUI.color = pt.used ? Color.grey : Color.white; + + if (nameText != null) + { + RefreshLocalizedName(LocalizationKit.GetLocaleKind( + LocalizationSettings.SelectedLocale?.Identifier.Code)); + } + + memoryIndexLabelText?.RefreshString(); + + if (visibilityText != null) + visibilityText.text = $"@{definition.VisibilityCode}"; + if (contentIdText != null) + contentIdText.text = $"CID: {definition.ContentId}"; + if (timecodeText != null) + timecodeText.text = $"T+: {definition.Timecode}"; + } + + private void HandleSelectedLocaleChanged(Locale locale) + { + RefreshLocalizedName(LocalizationKit.GetLocaleKind(locale?.Identifier.Code)); + } + + private void RefreshLocalizedName(LocaleKind localeKind) + { + if (nameText == null || punchTapeDefinition == null) + return; + + nameText.StringReference.Arguments = new object[] + { + LocalizationKit.LocalizeParam(punchTapeDefinition.DisplayNameParam, localeKind) + }; + nameText.RefreshString(); + } + + public PunchTape GetPunchTapeData() + { + return punchTapeData; + } + } +} diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeItem.cs.meta b/Assets/Scripts/FixSystem/PunchTape/PunchTapeItem.cs.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeItem.cs.meta rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeItem.cs.meta diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeManager.cs b/Assets/Scripts/FixSystem/PunchTape/PunchTapeManager.cs similarity index 58% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeManager.cs rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeManager.cs index c4f1ad069..1a63b1d23 100644 --- a/Assets/Scripts/FixSystem/PunchType/PunchTapeManager.cs +++ b/Assets/Scripts/FixSystem/PunchTape/PunchTapeManager.cs @@ -14,6 +14,9 @@ namespace AibisDream.FixSystem { public GameObject punchTapecluePrefab; + [SerializeField] private PunchTapeCatalog punchTapeCatalog; + public PunchTapeCatalog Catalog => punchTapeCatalog; + [SerializeField] private PunchTapeFavoritesPanel favoritesPanel; public PunchTapeFavoritesPanel FavoritesPanel => favoritesPanel; [SerializeField] private PunchTapePrinter punchTapePrinter; @@ -35,7 +38,7 @@ namespace AibisDream.FixSystem { return new PunchTapeSnapshotDto { - favorites = _favorites.Select(t => new PunchTape(t.Category, t.ClueName, t.MemoryIndex) + favorites = _favorites.Select(t => new PunchTape(t.DefinitionId) { used = t.used }).ToList() @@ -47,7 +50,19 @@ namespace AibisDream.FixSystem _favorites.Clear(); if (dto?.favorites != null) { - _favorites.AddRange(dto.favorites); + foreach (var tape in dto.favorites) + { + if (!TryGetDefinition(tape, out _)) + { + Debug.LogWarning( + $"[PunchTapeManager] 存档中的打孔带 ID '{tape?.DefinitionId ?? ""}' 无法解析,已跳过。", + this); + continue; + } + + if (!_favorites.Contains(tape)) + _favorites.Add(tape); + } } OnCollectionChanged?.Invoke(); @@ -56,6 +71,11 @@ namespace AibisDream.FixSystem public void AddPunchTape(PunchTape punchTape) { if (punchTape == null) return; + if (!TryGetDefinition(punchTape, out _)) + { + Debug.LogError($"[PunchTapeManager] 无法收藏未知打孔带 '{punchTape.DefinitionId}'。", this); + return; + } if (_favorites.Contains(punchTape)) return; @@ -94,10 +114,52 @@ namespace AibisDream.FixSystem favoritesPanel.ClosePanel(); } - public void GeneratePunchTapeWindow(string clueName, string category, string memoryIndex, - bool directlyAddToFavorites = false) + public bool TryGetDefinition(string definitionId, out PunchTapeDefinition definition) { - PunchTape punchTape = new PunchTape(category, clueName, memoryIndex); + definition = null; + if (punchTapeCatalog == null) + { + Debug.LogError("[PunchTapeManager] 未配置 PunchTapeCatalog。", this); + return false; + } + + var catalogErrors = punchTapeCatalog.GetValidationErrors(); + if (catalogErrors.Count > 0) + { + Debug.LogError( + $"[PunchTapeManager] PunchTapeCatalog 配置无效:\n{string.Join("\n", catalogErrors)}", + this); + return false; + } + + if (!punchTapeCatalog.TryGetDefinition(definitionId, out definition)) + { + Debug.LogError($"[PunchTapeManager] 未找到打孔带 ID '{definitionId}'。", this); + definition = null; + return false; + } + + if (!definition.TryValidate(out var error)) + { + Debug.LogError($"[PunchTapeManager] 打孔带 ID '{definitionId}' 无效:{error}", this); + definition = null; + return false; + } + + return true; + } + + public bool TryGetDefinition(PunchTape punchTape, out PunchTapeDefinition definition) + { + return TryGetDefinition(punchTape?.DefinitionId, out definition); + } + + public void GeneratePunchTapeWindow(string definitionId, bool directlyAddToFavorites = false) + { + if (!TryGetDefinition(definitionId, out var definition)) + return; + + PunchTape punchTape = new PunchTape(definitionId); if (directlyAddToFavorites) { @@ -108,8 +170,15 @@ namespace AibisDream.FixSystem GameObject go = Instantiate(punchTapecluePrefab, favoritesPanel.transform); PunchTapeItem item = go.GetComponent(); + if (item == null) + { + Debug.LogError("[PunchTapeManager] 生成 Prefab 缺少 PunchTapeItem。", go); + Destroy(go); + return; + } + currentPunchTapeGO = go; - item.Setup(punchTape); + item.Setup(punchTape, definition); } /// diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeManager.cs.meta b/Assets/Scripts/FixSystem/PunchTape/PunchTapeManager.cs.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeManager.cs.meta rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeManager.cs.meta diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapePrinter.cs b/Assets/Scripts/FixSystem/PunchTape/PunchTapePrinter.cs similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTapePrinter.cs rename to Assets/Scripts/FixSystem/PunchTape/PunchTapePrinter.cs diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapePrinter.cs.meta b/Assets/Scripts/FixSystem/PunchTape/PunchTapePrinter.cs.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTapePrinter.cs.meta rename to Assets/Scripts/FixSystem/PunchTape/PunchTapePrinter.cs.meta diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeYarnCommand.cs b/Assets/Scripts/FixSystem/PunchTape/PunchTapeYarnCommand.cs similarity index 74% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeYarnCommand.cs rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeYarnCommand.cs index 78df0d98d..0aafa1239 100644 --- a/Assets/Scripts/FixSystem/PunchType/PunchTapeYarnCommand.cs +++ b/Assets/Scripts/FixSystem/PunchTape/PunchTapeYarnCommand.cs @@ -10,10 +10,9 @@ namespace AibisDream private static PunchTapePrinter PunchTapePrinter => PunchTapeManager.Instance.PunchTapePrinter; [YarnCommand("generate_PunchTape")] - public static void GeneratePunchTapeWindow(string clueName, string category, string memoryIndex, - bool directlyAddToFavorites = false) + public static void GeneratePunchTapeWindow(string definitionId, bool directlyAddToFavorites = false) { - PunchTapeManager.GeneratePunchTapeWindow(clueName, category, memoryIndex, directlyAddToFavorites); + PunchTapeManager.GeneratePunchTapeWindow(definitionId, directlyAddToFavorites); } [YarnCommand("CollectionClue")] diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeYarnCommand.cs.meta b/Assets/Scripts/FixSystem/PunchTape/PunchTapeYarnCommand.cs.meta similarity index 100% rename from Assets/Scripts/FixSystem/PunchType/PunchTapeYarnCommand.cs.meta rename to Assets/Scripts/FixSystem/PunchTape/PunchTapeYarnCommand.cs.meta diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTape.cs b/Assets/Scripts/FixSystem/PunchType/PunchTape.cs deleted file mode 100644 index 6e1a0ef17..000000000 --- a/Assets/Scripts/FixSystem/PunchType/PunchTape.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; - -/// -/// 打孔带数据:用于记忆系统的资源键与对话节点,不依赖已废弃的 Clue 体系。 -/// 仅保留可序列化字段;本地化与 Yarn 键由 UI / 流程层调用 LocalizationKit 处理。 -/// -namespace AibisDream.FixSystem -{ - [Serializable] - public class PunchTape : IEquatable - { - public string Category; - public string ClueName; - public string MemoryIndex; - public bool used; - - public PunchTape() - { - } - - public PunchTape(string category, string name, string memoryIndex) - { - Category = category; - ClueName = name; - MemoryIndex = memoryIndex; - } - - /// 用于收藏列表去重与 UI 行映射(与 Equals 一致)。 - public string GetRowKey() - { - return $"{Category ?? string.Empty}\u001f{ClueName ?? string.Empty}\u001f{MemoryIndex ?? string.Empty}"; - } - - public bool Equals(PunchTape other) - { - if (other is null) return false; - if (ReferenceEquals(this, other)) return true; - return string.Equals(Category, other.Category, StringComparison.Ordinal) && - string.Equals(ClueName, other.ClueName, StringComparison.Ordinal) && - string.Equals(MemoryIndex, other.MemoryIndex, StringComparison.Ordinal); - } - - public override bool Equals(object obj) => Equals(obj as PunchTape); - - public override int GetHashCode() - { - unchecked - { - var hc = (Category != null ? StringComparer.Ordinal.GetHashCode(Category) : 0); - hc = (hc * 397) ^ (ClueName != null ? StringComparer.Ordinal.GetHashCode(ClueName) : 0); - hc = (hc * 397) ^ (MemoryIndex != null ? StringComparer.Ordinal.GetHashCode(MemoryIndex) : 0); - return hc; - } - } - - public static bool operator ==(PunchTape left, PunchTape right) - { - if (left is null) return right is null; - return left.Equals(right); - } - - public static bool operator !=(PunchTape left, PunchTape right) => !(left == right); - } -} diff --git a/Assets/Scripts/FixSystem/PunchType/PunchTapeItem.cs b/Assets/Scripts/FixSystem/PunchType/PunchTapeItem.cs deleted file mode 100644 index b5fe6cfab..000000000 --- a/Assets/Scripts/FixSystem/PunchType/PunchTapeItem.cs +++ /dev/null @@ -1,51 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; -using UnityEngine.Localization.Components; -using AibisDream.Framework; - -/// -/// 收藏夹 / 生成窗口中的打孔带 UI 项。 -/// -namespace AibisDream.FixSystem -{ - public class PunchTapeItem : MonoBehaviour - { - public Image clueImageUI; - public LocalizeStringEvent nameText; - - [HideInInspector] - public bool used = false; - - private PunchTape punchTapeData; - - public void Setup(PunchTape punchTape) - { - punchTapeData = punchTape; - used = punchTape != null && punchTape.used; - ApplyDisplay(punchTapeData); - } - - private void ApplyDisplay(PunchTape pt) - { - if (pt == null) - { - Debug.LogWarning("PunchTape is null. Display aborted."); - return; - } - - if (clueImageUI != null && pt.used) - clueImageUI.color = Color.grey; - - if (nameText != null) - { - nameText.StringReference.Arguments = new object[] { LocalizationKit.LocalizeParam(pt.ClueName) }; - nameText.RefreshString(); - } - } - - public PunchTape GetPunchTapeData() - { - return punchTapeData; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs b/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs index 5fa827595..76ad11c66 100644 --- a/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs +++ b/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs @@ -132,6 +132,14 @@ namespace AibisDream.Framework /// 参数名 /// public static string LocalizeParam(string param) + { + return LocalizeParam(param, CurrentLocaleKind); + } + + /// + /// 按指定语言列解析本地化参数,供需要响应 Locale 切换的非 Yarn UI 使用。 + /// + public static string LocalizeParam(string param, LocaleKind localeKind) { // 非本地化参数直接返回 if (string.IsNullOrEmpty(param)) return param; @@ -140,7 +148,7 @@ namespace AibisDream.Framework var localizationKey = param[LocalizationPrefix.Length..]; if (ConfigUtil.Instance.TryGetParam(localizationKey, out var value)) { - return value.LocalizeByKind(CurrentLocaleKind); + return value.LocalizeByKind(localeKind); } // 如果找不到,则使用原始值 @@ -181,4 +189,4 @@ namespace AibisDream.Framework Canvas.ForceUpdateCanvases(); } } -} \ No newline at end of file +}