refactor(clue): 移除废弃线索板与旧打孔带实现
Made-with: Cursor
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,833 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &380188843586696145
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 45499603671335862}
|
||||
- component: {fileID: 3651226432689433895}
|
||||
- component: {fileID: 9221536178847927281}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &45499603671335862
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 380188843586696145}
|
||||
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: 4993650456917624668}
|
||||
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: 25}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3651226432689433895
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 380188843586696145}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &9221536178847927281
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 380188843586696145}
|
||||
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: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &1403825789444272643
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1604617519185134939}
|
||||
- component: {fileID: 537567991504675450}
|
||||
- component: {fileID: 5462769473746124571}
|
||||
m_Layer: 5
|
||||
m_Name: Image (1)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &1604617519185134939
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1403825789444272643}
|
||||
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: 3149611074960643346}
|
||||
m_Father: {fileID: 4993650456917624668}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -100, y: 25}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &537567991504675450
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1403825789444272643}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5462769473746124571
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1403825789444272643}
|
||||
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: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &2260198552944312515
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6036857918381590041}
|
||||
- component: {fileID: 4039091455881796258}
|
||||
- component: {fileID: 3949314020793139242}
|
||||
- component: {fileID: 565462480347658120}
|
||||
m_Layer: 5
|
||||
m_Name: ClueItemPrefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6036857918381590041
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2260198552944312515}
|
||||
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: 4993650456917624668}
|
||||
m_Father: {fileID: 0}
|
||||
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: 400, y: 150}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!225 &4039091455881796258
|
||||
CanvasGroup:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2260198552944312515}
|
||||
m_Enabled: 1
|
||||
m_Alpha: 1
|
||||
m_Interactable: 1
|
||||
m_BlocksRaycasts: 1
|
||||
m_IgnoreParentGroups: 0
|
||||
--- !u!114 &3949314020793139242
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2260198552944312515}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5d5f46e915536ee40a8c605a443e9584, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
clueImageUI: {fileID: 7075144331494489462}
|
||||
categoryText: {fileID: 3999551045264380763}
|
||||
nameText: {fileID: 3293312212471079921}
|
||||
stateText: {fileID: 8192227228283879121}
|
||||
used: 0
|
||||
finished: {fileID: 0}
|
||||
--- !u!114 &565462480347658120
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2260198552944312515}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d792e0af9bafc174d8a2566cf81b2c6a, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
isFavorited: 0
|
||||
--- !u!1 &4124022480957499492
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4993650456917624668}
|
||||
- component: {fileID: 8329269373128324355}
|
||||
- component: {fileID: 7075144331494489462}
|
||||
m_Layer: 5
|
||||
m_Name: tapeImage
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4993650456917624668
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4124022480957499492}
|
||||
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}
|
||||
- {fileID: 45499603671335862}
|
||||
- {fileID: 1604617519185134939}
|
||||
- {fileID: 6887531889344103689}
|
||||
m_Father: {fileID: 6036857918381590041}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8329269373128324355
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4124022480957499492}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7075144331494489462
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4124022480957499492}
|
||||
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: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: -712470632465708247, guid: 57ad94bfc04c808478f030b46c094b63, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &6902410728416992151
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6293641014105233408}
|
||||
- component: {fileID: 3502239096339888384}
|
||||
- component: {fileID: 7847353110780076503}
|
||||
m_Layer: 5
|
||||
m_Name: Soruce
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6293641014105233408
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6902410728416992151}
|
||||
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: 6887531889344103689}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3502239096339888384
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6902410728416992151}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7847353110780076503
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6902410728416992151}
|
||||
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: "\u5DF2\u770B\u8FC7"
|
||||
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: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, 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: 28
|
||||
m_fontSizeBase: 28
|
||||
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!1 &7533127136812826032
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3149611074960643346}
|
||||
- component: {fileID: 7442249389942683591}
|
||||
- component: {fileID: 3999551045264380763}
|
||||
m_Layer: 5
|
||||
m_Name: Soruce
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3149611074960643346
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7533127136812826032}
|
||||
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: 1604617519185134939}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7442249389942683591
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7533127136812826032}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3999551045264380763
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7533127136812826032}
|
||||
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: New 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: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, 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: 28
|
||||
m_fontSizeBase: 28
|
||||
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!1 &7643179123736237062
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7924894876819984995}
|
||||
- component: {fileID: 8499524202528292966}
|
||||
- component: {fileID: 7622331551344773496}
|
||||
- component: {fileID: 3293312212471079921}
|
||||
m_Layer: 5
|
||||
m_Name: Name
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7924894876819984995
|
||||
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_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4993650456917624668}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -100, y: 55.8}
|
||||
m_SizeDelta: {x: -200, y: -100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8499524202528292966
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7643179123736237062}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7622331551344773496
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7643179123736237062}
|
||||
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: New 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: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, 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: 28
|
||||
m_fontSizeBase: 28
|
||||
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: 6.3168945, z: -199.4336, w: 7.2193604}
|
||||
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
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7643179123736237062}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, 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_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: []
|
||||
--- !u!1 &8192227228283879121
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6887531889344103689}
|
||||
- component: {fileID: 1106130173170497156}
|
||||
- component: {fileID: 6603602921383697454}
|
||||
m_Layer: 5
|
||||
m_Name: Image (2)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &6887531889344103689
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8192227228283879121}
|
||||
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: 6293641014105233408}
|
||||
m_Father: {fileID: 4993650456917624668}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -100, y: -71}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1106130173170497156
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8192227228283879121}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6603602921383697454
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8192227228283879121}
|
||||
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, g: 0, b: 0, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
@@ -1,48 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &6814349267378530968
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8677370814205024500}
|
||||
- component: {fileID: 3510766766159879648}
|
||||
m_Layer: 0
|
||||
m_Name: ClueManager
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8677370814205024500
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6814349267378530968}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 423.91736, y: 523.9112, z: -10.787967}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &3510766766159879648
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6814349267378530968}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5dd927405fcdda54fbc837069abc360d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
cluePrefab: {fileID: 6285052556030698184, guid: 39448b90e97cec44b86e851370a1335b, type: 3}
|
||||
canvas: {fileID: 0}
|
||||
@@ -1,127 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4957033186383070062
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 848385094971918041}
|
||||
- component: {fileID: 2957654739483189740}
|
||||
- component: {fileID: 636650076073895251}
|
||||
m_Layer: 5
|
||||
m_Name: tapeImage
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &848385094971918041
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4957033186383070062}
|
||||
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: 7660880866045446374}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2957654739483189740
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4957033186383070062}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &636650076073895251
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4957033186383070062}
|
||||
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: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 3685dd63737dbfb4c90fa8f5cd771c81, type: 3}
|
||||
m_Type: 1
|
||||
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 &9180733108289175355
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7660880866045446374}
|
||||
- component: {fileID: 8709568801333991386}
|
||||
m_Layer: 5
|
||||
m_Name: ClueSlot
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7660880866045446374
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9180733108289175355}
|
||||
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: 848385094971918041}
|
||||
m_Father: {fileID: 0}
|
||||
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: 150, y: 150}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &8709568801333991386
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9180733108289175355}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: bd0b32d1dec841247984791d91171633, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
isOccupied: 0
|
||||
@@ -1,113 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2424662228528623556
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8538217932967146522}
|
||||
m_Layer: 5
|
||||
m_Name: PunchTapeSlot
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8538217932967146522
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2424662228528623556}
|
||||
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: 3565815748221874198}
|
||||
m_Father: {fileID: 0}
|
||||
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: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &7880595094219686492
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3565815748221874198}
|
||||
- component: {fileID: 5287806630649122575}
|
||||
- component: {fileID: 572035747791246611}
|
||||
m_Layer: 5
|
||||
m_Name: tapeImage
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3565815748221874198
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7880595094219686492}
|
||||
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: 8538217932967146522}
|
||||
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: 500, y: 200}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5287806630649122575
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7880595094219686492}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &572035747791246611
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7880595094219686492}
|
||||
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: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 3685dd63737dbfb4c90fa8f5cd771c81, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c28204e99201e14da50dd56d0ae803f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,27 +0,0 @@
|
||||
using AibisDream.Framework;
|
||||
using UnityEngine;
|
||||
|
||||
public enum ClueType
|
||||
{
|
||||
PunchTape,
|
||||
ImageClue,
|
||||
// 添加其他类型
|
||||
}
|
||||
public abstract class Clue
|
||||
{
|
||||
public string Category { get; set; }
|
||||
public string ClueName { get; set; }
|
||||
public string YarnNodeName => LocalizationKit.GetL10NParamKey(ClueName);
|
||||
public string LocaleClueName => LocalizationKit.LocalizeParam(ClueName);
|
||||
public ClueType ClueType { get; protected set; }
|
||||
public Clue(string category, string name)
|
||||
{
|
||||
Category = category;
|
||||
ClueName = name;
|
||||
//PuzzleIndex=puzzleIndex;
|
||||
}
|
||||
|
||||
public abstract void Display(ClueItem clueitem);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a06f6ba4e40a56142bc2b8d327f11c92
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,265 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
//using System.Diagnostics;
|
||||
using AibisDream;
|
||||
using MeadowGames.UINodeConnect4;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
using RainbowArt.CleanFlatUI;
|
||||
using UnityEngine.UI;
|
||||
using DG.Tweening;
|
||||
using MeadowGames.UINodeConnect4.GraphicRenderer;
|
||||
using System;
|
||||
|
||||
public class ClueBaordNew : MonoBehaviour
|
||||
{
|
||||
|
||||
private GraphManager gm;
|
||||
public List<GameObject> nodeLists;
|
||||
public Notification ClueBoardNotification;
|
||||
private Connection currentConnection;
|
||||
|
||||
private List<Connection> connectionList;
|
||||
|
||||
private bool isTriggerDialogue=true;
|
||||
|
||||
public ScrollRect scrollRect; // ScrollView的ScrollRect组件
|
||||
public RectTransform contentRectTransform; // Content的RectTransform
|
||||
public float padding = 10f; // 节点的额外间隔
|
||||
public float scrollDuration = 1.5f; // 滚动动画持续时间
|
||||
public float scaleDuration = 1f; // 缩放动画持续时间
|
||||
void Start()
|
||||
{
|
||||
gm=GetComponent<GraphManager>();
|
||||
gm.OnConnectionAdded += CheckConnection;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
[YarnCommand("ScrollToNode")]
|
||||
public IEnumerator ScrollToNode(string nodeName)
|
||||
{
|
||||
if (scrollRect == null || contentRectTransform == null)
|
||||
{
|
||||
Debug.LogError("ScrollRect or ContentRectTransform is not assigned!");
|
||||
yield break;
|
||||
}
|
||||
|
||||
// 获取目标节点
|
||||
Transform targetNode = GetNodeGameObject(nodeName)?.transform;
|
||||
if (targetNode == null)
|
||||
{
|
||||
Debug.LogWarning($"Node {nodeName} not found!");
|
||||
yield break;
|
||||
}
|
||||
|
||||
RectTransform targetRectTransform = targetNode.GetComponent<RectTransform>();
|
||||
if (targetRectTransform == null)
|
||||
{
|
||||
Debug.LogWarning($"Node {nodeName} does not have a RectTransform!");
|
||||
yield break;
|
||||
}
|
||||
|
||||
// **计算目标 Content 位置**
|
||||
Vector3[] viewportCorners = new Vector3[4];
|
||||
scrollRect.viewport.GetWorldCorners(viewportCorners);
|
||||
|
||||
Vector3[] contentCorners = new Vector3[4];
|
||||
contentRectTransform.GetWorldCorners(contentCorners);
|
||||
|
||||
Vector3 targetWorldPosition = targetRectTransform.position;
|
||||
Vector2 viewportCenter = (viewportCorners[0] + viewportCorners[2]) / 2f;
|
||||
Vector2 offset = (Vector2)targetWorldPosition - viewportCenter;
|
||||
|
||||
Vector2 targetContentPos = contentRectTransform.anchoredPosition - offset;
|
||||
|
||||
// **动画处理**
|
||||
float zoomScale = 1.5f; // 放大倍数
|
||||
Sequence scrollSequence = DOTween.Sequence();
|
||||
|
||||
// 平滑移动 Content
|
||||
scrollSequence.Append(contentRectTransform.DOAnchorPos(targetContentPos, scrollDuration).SetEase(Ease.InOutQuad));
|
||||
|
||||
// 同时缩放目标节点
|
||||
scrollSequence.Join(targetRectTransform.DOScale(Vector3.one * zoomScale, scaleDuration).SetEase(Ease.OutBack));
|
||||
|
||||
// 动画完成后恢复缩放
|
||||
scrollSequence.Append(targetRectTransform.DOScale(Vector3.one, scaleDuration).SetEase(Ease.OutBack));
|
||||
|
||||
yield return scrollSequence.WaitForCompletion();
|
||||
}
|
||||
|
||||
[YarnCommand("SetNodeState")]
|
||||
public IEnumerator ActiveNodeToBoard(string nodeID,bool isactive,bool skipAnimation=false)
|
||||
{
|
||||
GameObject targetNode=nodeLists.Find(node => node.name == nodeID);
|
||||
if (targetNode == null)
|
||||
{
|
||||
Debug.LogWarning($"Node {nodeID} not found!");
|
||||
yield break;
|
||||
}
|
||||
targetNode.gameObject.SetActive(isactive);
|
||||
|
||||
if(skipAnimation)
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
RectTransform targetRectTransform = targetNode.GetComponent<RectTransform>();
|
||||
if (targetRectTransform == null)
|
||||
{
|
||||
Debug.LogWarning($"Node {nodeID} does not have a RectTransform!");
|
||||
yield break;
|
||||
}
|
||||
targetRectTransform.DOScale(Vector3.one * 1.5f, scaleDuration).SetEase(Ease.OutBack);
|
||||
|
||||
// 等待动画完成
|
||||
yield return new WaitForSeconds(scrollDuration);
|
||||
|
||||
// 恢复目标节点缩放
|
||||
targetRectTransform.DOScale(Vector3.one, scaleDuration).SetEase(Ease.OutBack);
|
||||
}
|
||||
[YarnCommand("NodeInit")]
|
||||
public void NodeInit(string nodeID,bool isactive)
|
||||
{
|
||||
GameObject targetNode=nodeLists.Find(node => node.name == nodeID);
|
||||
if (targetNode == null)
|
||||
{
|
||||
Debug.LogWarning($"Node {nodeID} not found!");
|
||||
return;
|
||||
}
|
||||
targetNode.gameObject.SetActive(isactive);
|
||||
}
|
||||
// [YarnCommand("SetNodeState")]
|
||||
// public void ActiveNodeToBoard(string nodeID,bool isactive)
|
||||
// {
|
||||
// nodeLists.Find(node => node.name == nodeID).gameObject.SetActive(isactive);
|
||||
// }
|
||||
[YarnCommand("ClearAllNode")]
|
||||
public void ClearAllNode()
|
||||
{
|
||||
for (int i = gm.localConnections.Count - 1; i >= 0; i--)
|
||||
{
|
||||
gm.localConnections[i].Remove();
|
||||
}
|
||||
|
||||
for (int i = nodeLists.Count - 1; i >= 0; i--)
|
||||
{
|
||||
nodeLists[i].SetActive(false);
|
||||
}
|
||||
|
||||
// foreach(Connection line in gm.localConnections)
|
||||
// {
|
||||
// line.Remove();
|
||||
// }
|
||||
// foreach(GameObject node in nodeLists)
|
||||
// {
|
||||
// node.SetActive(false);
|
||||
// }
|
||||
}
|
||||
[YarnCommand("CreateConnection")]
|
||||
public void CreateConnection(string StartNode,string EndNode)
|
||||
{
|
||||
Port start= GetNode(StartNode).ports[1];
|
||||
Port end= GetNode(EndNode).ports[0];
|
||||
Connection newConnection=Connection.NewConnection(start,end);
|
||||
newConnection.DisableClick=false;
|
||||
newConnection.EnableDrag=false;
|
||||
newConnection.EnableHover=false;
|
||||
newConnection.line.color=Color.red;
|
||||
}
|
||||
public void ExitClueBoard()
|
||||
{
|
||||
DialogController.Instance.StartDialogNode("退出ClueBoard");
|
||||
}
|
||||
|
||||
public Node GetNode(string nodeID)
|
||||
{
|
||||
return gm.localNodes.Find(node => node.ID == nodeID);
|
||||
}
|
||||
|
||||
public GameObject GetNodeGameObject(string nodeID)
|
||||
{
|
||||
return nodeLists.Find(node => node.name == nodeID);
|
||||
}
|
||||
|
||||
[YarnCommand("SetIsTriggerDialogueWhenConnect")]
|
||||
public void SetIsTriggerDialogueWhenConnect(bool isTrigger)
|
||||
{
|
||||
isTriggerDialogue=isTrigger;
|
||||
}
|
||||
|
||||
[YarnCommand("ChangeConnectionVisual")]
|
||||
public IEnumerator ChangeConnectionVisual(string startNode,float speed,string color)
|
||||
{
|
||||
Connection Targetconnection=gm.localConnections.Find(connection => connection.port0.node.ID == startNode);
|
||||
if (Targetconnection == null)
|
||||
{
|
||||
Debug.LogWarning($"Connection start with {startNode} not found!");
|
||||
yield break;
|
||||
}
|
||||
Targetconnection.line.animation.isActive=true;
|
||||
Targetconnection.line.animation.shape=Shape.Type.Square;
|
||||
Targetconnection.line.animation.speed=speed;
|
||||
Targetconnection.line.animation.size=30;
|
||||
switch (color)
|
||||
{
|
||||
case "Blue":
|
||||
Targetconnection.line.animation.color=Color.blue;
|
||||
break;
|
||||
}
|
||||
Targetconnection.line.animation.DrawLineAnimation(gm.lineRenderer,Targetconnection.line);
|
||||
|
||||
}
|
||||
public void CheckConnection(Connection connection)
|
||||
{
|
||||
currentConnection=connection;
|
||||
StorageSystem.Instance?.SetValue("$StartNode",connection.port0.node.ID);
|
||||
StorageSystem.Instance?.SetValue("$EndNode",connection.port1.node.ID);
|
||||
if(isTriggerDialogue)
|
||||
{
|
||||
DialogController.Instance.StartDialogNode("检查ClueBoard");
|
||||
|
||||
}
|
||||
}
|
||||
[YarnCommand("ConnectionCantBreak")]
|
||||
public void SetConnectionProperties()
|
||||
{
|
||||
if (currentConnection == null)
|
||||
{
|
||||
Debug.LogWarning("Connection not found.");
|
||||
return;
|
||||
}
|
||||
|
||||
currentConnection.DisableClick=false;
|
||||
currentConnection.EnableDrag=false;
|
||||
currentConnection.EnableHover=false;
|
||||
currentConnection.line.color=Color.red;
|
||||
|
||||
}
|
||||
// [YarnCommand("AddNodeConnection")]
|
||||
// public void CreateConnection(string starNode,int startPort,string endNode,int endPort)
|
||||
// {
|
||||
// Node start= GetNode(starNode);
|
||||
// Node end= GetNode(endNode);
|
||||
// Connection newConnection=start.ports[startPort].ConnectTo(end.ports[endPort]);
|
||||
// newConnection.DisableClick=false;
|
||||
// newConnection.EnableDrag=false;
|
||||
// gm.UnselectAllElements();
|
||||
// newConnection.DisableClick=false;
|
||||
// newConnection.EnableDrag=false;
|
||||
// newConnection.EnableHover=false;
|
||||
// newConnection.line.color=Color.green;
|
||||
// //currentConnection=null;
|
||||
// }
|
||||
[YarnCommand("EnableQuestion")]
|
||||
public void EnableQuestion(string nodeID)
|
||||
{
|
||||
GetNode(nodeID).transform.GetChild(2).gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da9436bcd0acd514fac5e4c5ead6e810
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d32346823f335a14f935d442aa52a99c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,100 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections;
|
||||
using DG.Tweening;
|
||||
using TMPro;
|
||||
using AibisDream;
|
||||
using Yarn.Unity;
|
||||
using System;
|
||||
|
||||
public class ClueBoardManager : MonoBehaviour
|
||||
{
|
||||
// 单例实例
|
||||
public static ClueBoardManager Instance { get; private set; }
|
||||
|
||||
public Canvas clueBoardUI; // ClueBoard UI的GameObject
|
||||
public GameObject iamgePointer; // ClueBoard UI的GameObject
|
||||
[SerializeField] private Button toggleButton; // 开启/关闭ClueBoard的按钮
|
||||
private RectTransform clueBoardRectTransform; // ClueBoard的RectTransform
|
||||
private List<ClueSlotBase> clueSlots = new List<ClueSlotBase>(); // 当前存在的所有ClueSlot
|
||||
private int currentStep = 0; // 当前步骤编号
|
||||
|
||||
private int maxStep = 3; // 当前步骤编号
|
||||
private bool isBoardOpen = false;
|
||||
private Vector2 hiddenPosition; // ClueBoard隐藏时的位置
|
||||
private Vector2 visiblePosition; // ClueBoard显示时的位置
|
||||
|
||||
public event Action OnClueBoardOpen;
|
||||
public event Action OnClueBoardClose;
|
||||
|
||||
[YarnCommand("wait_for_ClueBoard_close")]
|
||||
public IEnumerator WaitForClose()
|
||||
{
|
||||
// 这里等待关闭按钮点击事件
|
||||
while (isBoardOpen)
|
||||
{
|
||||
yield return null; // 每帧检查一次
|
||||
}
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (Instance != null && Instance != this)
|
||||
{
|
||||
Destroy(gameObject); // 确保单例唯一性
|
||||
return;
|
||||
}
|
||||
Instance = this;
|
||||
//DontDestroyOnLoad(gameObject); // 如果需要跨场景保留
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
clueBoardRectTransform = clueBoardUI.transform.GetComponent<RectTransform>();
|
||||
clueBoardUI.enabled = false;
|
||||
iamgePointer.GetComponent<Image>().enabled = false;
|
||||
|
||||
toggleButton.onClick.AddListener(ToggleClueBoard); // 绑定按钮事件
|
||||
}
|
||||
|
||||
// 开启或关闭 ClueBoard
|
||||
private void ToggleClueBoard()
|
||||
{
|
||||
Debug.Log("触发打开关闭诊疗面板");
|
||||
if (isBoardOpen)
|
||||
{
|
||||
CloseClueBoard();
|
||||
}
|
||||
else
|
||||
{
|
||||
OpenClueBoard();
|
||||
}
|
||||
}
|
||||
|
||||
[YarnCommand("OpenClueBoard")]
|
||||
public void OpenClueBoard()
|
||||
{
|
||||
clueBoardUI.enabled = true;
|
||||
iamgePointer.GetComponent<Image>().enabled = true;
|
||||
isBoardOpen = true;
|
||||
OnClueBoardOpen?.Invoke();
|
||||
// MouseCursorManager.Instance.ClueBoardIn();
|
||||
}
|
||||
|
||||
[YarnCommand("CloseClueBoard")]
|
||||
public void CloseClueBoard()
|
||||
{
|
||||
isBoardOpen = false;
|
||||
clueBoardUI.enabled = false;
|
||||
iamgePointer.GetComponent<Image>().enabled = false;
|
||||
OnClueBoardClose?.Invoke();
|
||||
// MouseCursorManager.Instance.ClueBoardOut();
|
||||
}
|
||||
|
||||
[YarnCommand("SkipClueBoard")]
|
||||
public void SkipClueBoard()
|
||||
{
|
||||
DialogController.Instance.StartDialogNode("SkipClueBoard");
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e0093028f75bca0408902ce738d4d267
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,33 +0,0 @@
|
||||
using UnityEngine;
|
||||
using TMPro;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class ClueDisplay : MonoBehaviour
|
||||
{
|
||||
public TMP_Text categoryText;
|
||||
public TMP_Text nameText;
|
||||
// public Image clueImageUI; // 如果需要显示图片的话
|
||||
|
||||
private Clue clueData;
|
||||
|
||||
// 负责初始化并显示线索
|
||||
public void Setup(Clue clue)
|
||||
{
|
||||
clueData = clue;
|
||||
UpdateDisplay();
|
||||
}
|
||||
|
||||
// 更新 UI 显示
|
||||
private void UpdateDisplay()
|
||||
{
|
||||
if (categoryText != null) categoryText.text = "分类:" + clueData.Category;
|
||||
if (nameText != null) nameText.text = "名称:" + clueData.ClueName;
|
||||
// if (clueImageUI != null) clueImageUI.sprite = ...; // 如果有图片
|
||||
}
|
||||
|
||||
// 如果需要获取 Clue 数据
|
||||
public Clue GetClueData()
|
||||
{
|
||||
return clueData;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1de038ee94452684eb5bbec9ece5c9c6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,42 +0,0 @@
|
||||
using UnityEngine;
|
||||
using TMPro;
|
||||
using System;
|
||||
using DG.Tweening;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class ClueDisplayManager : MonoBehaviour
|
||||
{
|
||||
|
||||
public RectTransform punchTapeCurrentPos;
|
||||
|
||||
private float punchTapeStartPosX;
|
||||
[SerializeField] private TMP_Text nameText; // 用于显示名称
|
||||
[SerializeField] private TMP_Text categoryText; // 用于显示分类
|
||||
|
||||
|
||||
void Start()
|
||||
{
|
||||
punchTapeStartPosX=punchTapeCurrentPos.rect.width/2;
|
||||
ResetClueDisplay();
|
||||
}
|
||||
|
||||
// 用于初始化显示内容的方法
|
||||
public void InitializeClueDisplay(string clueName,string category,Action onComplete = null)
|
||||
{
|
||||
punchTapeCurrentPos.anchoredPosition=new Vector2(punchTapeStartPosX,punchTapeCurrentPos.anchoredPosition.y);
|
||||
nameText.text = clueName;
|
||||
categoryText.text=category;
|
||||
punchTapeCurrentPos.DOAnchorPosX(-punchTapeStartPosX,2f).SetEase(Ease.OutQuad).OnComplete(() =>
|
||||
{
|
||||
// 调用回调
|
||||
onComplete?.Invoke();
|
||||
});
|
||||
}
|
||||
public void ResetClueDisplay()
|
||||
{
|
||||
punchTapeCurrentPos.anchoredPosition=new Vector2(punchTapeStartPosX,punchTapeCurrentPos.anchoredPosition.y);
|
||||
nameText.text = null;
|
||||
categoryText.text=null;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f6562a78d055f04aac6ccfb0b7fe989
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,134 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using Yarn.Unity;
|
||||
using System;
|
||||
|
||||
public class ClueInteraction : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler, IBeginDragHandler, IDragHandler, IEndDragHandler
|
||||
{
|
||||
private Transform originalParent;
|
||||
public Transform OriginalParent => originalParent;
|
||||
private Canvas canvas;
|
||||
private ClueItem clueItem;
|
||||
[HideInInspector]
|
||||
public bool isFavorited = false; // 初始未收藏
|
||||
|
||||
private RectTransform rectTransform;
|
||||
private Vector2 originalAnchorMin;
|
||||
private Vector2 originalAnchorMax;
|
||||
private Vector2 originalOffsetMin;
|
||||
private Vector2 originalOffsetMax;
|
||||
private Vector2 originalPivot;
|
||||
|
||||
private CursorMode cursorMode = CursorMode.Auto;
|
||||
|
||||
public event Action OnInteraction;
|
||||
|
||||
private bool isLocked=false;
|
||||
|
||||
private MemoryClueSlot slot;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
canvas = GetComponentInParent<Canvas>();
|
||||
clueItem = GetComponent<ClueItem>();
|
||||
rectTransform = GetComponent<RectTransform>();
|
||||
slot=FindObjectOfType<MemoryClueSlot>();
|
||||
|
||||
// 存储初始尺寸属性
|
||||
StoreOriginalTransform();
|
||||
}
|
||||
|
||||
private void StoreOriginalTransform()
|
||||
{
|
||||
originalParent = transform.parent;
|
||||
originalAnchorMin = rectTransform.anchorMin;
|
||||
originalAnchorMax = rectTransform.anchorMax;
|
||||
originalOffsetMin = rectTransform.offsetMin;
|
||||
originalOffsetMax = rectTransform.offsetMax;
|
||||
originalPivot = rectTransform.pivot;
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
// 可以设置收藏夹样式的鼠标指针
|
||||
// Cursor.SetCursor(favoriteCursor, Vector2.zero, cursorMode);
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
Cursor.SetCursor(null, Vector2.zero, cursorMode);
|
||||
}
|
||||
|
||||
public void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
// if (!isFavorited||isLocked) return;
|
||||
// transform.position = Input.mousePosition+new Vector3(0,200,0);
|
||||
// transform.rotation = Quaternion.Euler(0, 0, -90f);
|
||||
}
|
||||
|
||||
public void OnBeginDrag(PointerEventData eventData)
|
||||
{
|
||||
if (!isFavorited||isLocked) return;
|
||||
|
||||
transform.SetParent(canvas.transform);
|
||||
GetComponent<CanvasGroup>().blocksRaycasts = false;
|
||||
slot.coverOpen.enabled=true;
|
||||
slot.coverClose.enabled=false;
|
||||
}
|
||||
|
||||
public void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
if (!isFavorited||isLocked) return;
|
||||
|
||||
transform.position = Input.mousePosition+new Vector3(0,200,0);
|
||||
transform.rotation = Quaternion.Euler(0, 0, -90f);
|
||||
}
|
||||
|
||||
public void OnEndDrag(PointerEventData eventData)
|
||||
{
|
||||
if (!isFavorited||isLocked) return;
|
||||
|
||||
if (transform.parent == canvas.transform)
|
||||
{
|
||||
ReturnToOriginalPosition();
|
||||
}
|
||||
GetComponent<CanvasGroup>().blocksRaycasts = true;
|
||||
}
|
||||
|
||||
public void ReturnToOriginalPosition()
|
||||
{
|
||||
slot.coverOpen.enabled=false;
|
||||
slot.coverClose.enabled=true;
|
||||
isLocked=false;
|
||||
transform.rotation = Quaternion.Euler(0, 0, 0);
|
||||
transform.SetParent(originalParent);
|
||||
rectTransform.anchorMin = originalAnchorMin;
|
||||
rectTransform.anchorMax = originalAnchorMax;
|
||||
rectTransform.offsetMin = originalOffsetMin;
|
||||
rectTransform.offsetMax = originalOffsetMax;
|
||||
rectTransform.pivot = originalPivot;
|
||||
transform.localPosition = Vector3.zero; // 重置为初始局部位置
|
||||
}
|
||||
|
||||
public void SetClueParentAndPosition(Transform newParent)
|
||||
{
|
||||
isLocked=true;
|
||||
Destroy(this.gameObject);
|
||||
// rectTransform.SetParent(newParent);
|
||||
// // rectTransform.anchorMin = Vector2.zero;
|
||||
// // rectTransform.anchorMax = Vector2.one;
|
||||
// // rectTransform.offsetMin = Vector2.zero;
|
||||
// // rectTransform.offsetMax = Vector2.zero;
|
||||
// rectTransform.pivot = new Vector2(0.5f, 0.5f);
|
||||
// transform.localPosition = Vector3.zero;
|
||||
}
|
||||
|
||||
public void SetIsFavorited(bool isFavorited)
|
||||
{
|
||||
this.isFavorited = isFavorited;
|
||||
}
|
||||
public void SetIsLock(bool isLocked)
|
||||
{
|
||||
this.isLocked = isLocked;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d792e0af9bafc174d8a2566cf81b2c6a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,35 +0,0 @@
|
||||
using UnityEngine;
|
||||
using TMPro;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.Localization.Components;
|
||||
|
||||
public class ClueItem : MonoBehaviour
|
||||
{
|
||||
public Image clueImageUI;
|
||||
public TMP_Text categoryText;
|
||||
public LocalizeStringEvent nameText;
|
||||
public GameObject stateText;
|
||||
|
||||
[HideInInspector]
|
||||
public bool used=false;
|
||||
|
||||
private Clue clueData;
|
||||
|
||||
public GameObject finished;
|
||||
|
||||
public void Setup(Clue clue)
|
||||
{
|
||||
clueData = clue;
|
||||
if(used)
|
||||
{
|
||||
clueImageUI.color=Color.grey;
|
||||
stateText.SetActive(true);
|
||||
}
|
||||
clueData.Display(this);
|
||||
}
|
||||
|
||||
public Clue GetClueData()
|
||||
{
|
||||
return clueData;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5d5f46e915536ee40a8c605a443e9584
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,109 +0,0 @@
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
using RainbowArt.CleanFlatUI;
|
||||
using AibisDream.Framework;
|
||||
|
||||
public class ClueManager : MonoBehaviour
|
||||
{
|
||||
public GameObject punchTapecluePrefab; // 通用线索预制件
|
||||
|
||||
public GameObject imageCluePrefab;
|
||||
public Canvas canvas; // UI画布
|
||||
private ClueInteraction currentClueInteraction;
|
||||
|
||||
private GameObject currentClue;
|
||||
|
||||
//public Notification FavouriteNotification;
|
||||
public Notification TopNotification;
|
||||
|
||||
//public Notification ClueBoardNotification;
|
||||
ClueBaordNew clueBaord;
|
||||
|
||||
// MouseCursorManager mouseManager;
|
||||
void Start()
|
||||
{
|
||||
clueBaord = FindObjectOfType<ClueBaordNew>();
|
||||
}
|
||||
|
||||
public void GetPunchTape()
|
||||
{
|
||||
// 动态生成打孔带的数据
|
||||
string category = "视觉";
|
||||
string name = "sky";
|
||||
//Sprite image = GetRandomPunchTapeSprite();
|
||||
string memoryIndex = "blue";
|
||||
|
||||
// 实例化打孔带线索
|
||||
PunchTape punchTape = new PunchTape(category, name, memoryIndex);
|
||||
GameObject clueGO = Instantiate(punchTapecluePrefab, canvas.transform);
|
||||
|
||||
ClueItem clueItem = clueGO.GetComponent<ClueItem>();
|
||||
clueItem.Setup(punchTape);
|
||||
}
|
||||
|
||||
//用于生成打孔带的函数
|
||||
[YarnCommand("generate_PunchTape")]
|
||||
public void GeneratePunchTapeWindow(string clueName, string category, string memoryIndex,
|
||||
bool directlyAddToFavorites = false)
|
||||
{
|
||||
PunchTape punchTape = new PunchTape(category, clueName, memoryIndex);
|
||||
|
||||
if (directlyAddToFavorites)
|
||||
{
|
||||
FavoritesManager.Instance.AddClue(punchTape);
|
||||
return;
|
||||
}
|
||||
|
||||
GameObject clueGO = Instantiate(punchTapecluePrefab, canvas.transform);
|
||||
|
||||
ClueItem clueItem = clueGO.GetComponent<ClueItem>();
|
||||
currentClue = clueGO;
|
||||
clueItem.Setup(punchTape);
|
||||
}
|
||||
|
||||
[YarnCommand("CollectionClue")]
|
||||
public void EnabeClueInteraction(string nodeID = null)
|
||||
{
|
||||
if (nodeID != null)
|
||||
{
|
||||
//Debug.Log("收藏线索版成功!");
|
||||
//clueBaord.CreateNode(nodeID);
|
||||
return;
|
||||
}
|
||||
|
||||
// if(currentClue==null)
|
||||
// {
|
||||
// Debug.Log("收藏线索版成功!");
|
||||
// clueBaord.CreateNode(nodeID);
|
||||
// return;
|
||||
// }
|
||||
ClueItem clueItem = currentClue.GetComponent<ClueItem>();
|
||||
Clue clue = clueItem.GetClueData();
|
||||
ClueInteraction clueInteraction = currentClue.GetComponent<ClueInteraction>();
|
||||
|
||||
if (clue.ClueType == ClueType.PunchTape)
|
||||
{
|
||||
FavoritesManager.Instance.AddClue(clueItem.GetClueData());
|
||||
Destroy(currentClue.gameObject);
|
||||
Debug.Log("收藏文件夹成功!");
|
||||
clueInteraction.isFavorited = true;
|
||||
currentClue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("收藏线索版成功!");
|
||||
//clueBaord.CreateNode(clue.ClueName);
|
||||
Destroy(currentClue.gameObject);
|
||||
currentClue = null;
|
||||
}
|
||||
}
|
||||
|
||||
[YarnCommand("ShowNotification")]
|
||||
public void ShowNotification(string Title, string message)
|
||||
{
|
||||
TopNotification.TitleValue = Title;
|
||||
TopNotification.DescriptionValue = message;
|
||||
TopNotification.ShowNotification();
|
||||
//currentClueInteraction.OnInteraction-=ShowFavouriteNotification;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5dd927405fcdda54fbc837069abc360d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,103 +0,0 @@
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using Yarn.Unity;
|
||||
using AibisDream;
|
||||
|
||||
public class ClueSlot : MonoBehaviour, IDropHandler
|
||||
{
|
||||
public ClueType expectedClueType;
|
||||
|
||||
private MemoryProcess memoryManager;
|
||||
|
||||
private PunchTape punchTape;
|
||||
|
||||
private ClueInteraction interaction;
|
||||
|
||||
[HideInInspector]
|
||||
public bool isOccupied=false;
|
||||
//public string memoryIndex; // 存储的memory string
|
||||
|
||||
|
||||
void Start()
|
||||
{
|
||||
memoryManager=FindObjectOfType<MemoryProcess>();
|
||||
interaction=null;
|
||||
punchTape=null;
|
||||
|
||||
}
|
||||
|
||||
public void OnDrop(PointerEventData eventData)
|
||||
{
|
||||
if(isOccupied)
|
||||
{
|
||||
Debug.Log("is using");
|
||||
return;
|
||||
}
|
||||
isOccupied=true;
|
||||
ClueItem clueItem = eventData.pointerDrag.GetComponent<ClueItem>();
|
||||
if (clueItem != null)
|
||||
{
|
||||
Clue clue = clueItem.GetClueData();
|
||||
interaction=clueItem.GetComponent<ClueInteraction>();
|
||||
Debug.Log(clue.ClueType+" "+expectedClueType);
|
||||
if (clue!=null && clue.ClueType == expectedClueType&&interaction!=null)
|
||||
{
|
||||
FavoritesManager.Instance.RemoveClue(clue);
|
||||
Debug.Log("success");
|
||||
// 插入成功
|
||||
// 将线索项放置到插槽中
|
||||
|
||||
interaction.SetClueParentAndPosition(transform);
|
||||
|
||||
|
||||
//clueItem.transform.SetParent(transform);
|
||||
//clueItem.transform.position = transform.position;
|
||||
|
||||
if (clue is PunchTape)
|
||||
{
|
||||
punchTape= clue as PunchTape;
|
||||
PlayMemory(punchTape);
|
||||
}
|
||||
// 播放记忆
|
||||
|
||||
|
||||
// 从收藏夹移除线索
|
||||
//FavoritesManager.Instance.RemoveClue(clue);
|
||||
|
||||
// 销毁线索项
|
||||
//Destroy(clueItem.gameObject, 1f); // 延迟销毁,方便展示动画
|
||||
}
|
||||
else
|
||||
{
|
||||
interaction.ReturnToOriginalPosition();
|
||||
// 类型不匹配,返回原位
|
||||
// clueItem.transform.SetParent(clueItem.OriginalParent);
|
||||
// clueItem.transform.position = clueItem.OriginalParent.position;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void PlayMemory(Clue clue)
|
||||
{
|
||||
// 根据线索的记忆索引播放对应的记忆
|
||||
if (clue is PunchTape)
|
||||
{
|
||||
PunchTape punchTape = clue as PunchTape;
|
||||
string memoryIndex = punchTape.MemoryIndex;
|
||||
// 播放对应的记忆内容
|
||||
Debug.Log("播放记忆:" + memoryIndex);
|
||||
StartCoroutine(memoryManager.SearchMemory(punchTape));
|
||||
//DialogController.Instance.StartDialogNode(memoryIndex);
|
||||
// 您可以在这里实现播放记忆的具体逻辑
|
||||
}
|
||||
}
|
||||
|
||||
// [YarnCommand("Release_Slot")]
|
||||
public void ReleaseSlot()
|
||||
{
|
||||
isOccupied=false;
|
||||
interaction.ReturnToOriginalPosition();
|
||||
interaction=null;
|
||||
punchTape=null;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 092522a3461fc814a8b9337827332dc4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,140 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
using DG.Tweening;
|
||||
using AibisDream;
|
||||
using AibisDream.Kit;
|
||||
|
||||
public class ClueSlotBase : MonoBehaviour, IDropHandler
|
||||
{
|
||||
public Image filmImage; // 新增的胶片Image
|
||||
|
||||
public Image RoateImage; // 新增的胶片Image
|
||||
|
||||
private Transform filmStartPos;
|
||||
protected ClueType expectedClueType; // 期望的 Clue 类型
|
||||
protected ClueInteraction interaction; // Clue 的交互
|
||||
|
||||
protected RectTransform OriginalTransform; // Clue 的交互
|
||||
[HideInInspector]
|
||||
public ClueItem currentClueItem; // 当前插入的 ClueItem
|
||||
public Image punchTapeImage;
|
||||
public Image coverClose;
|
||||
public Image coverOpen;
|
||||
|
||||
private RectTransform punchtapeStartpos;
|
||||
|
||||
[HideInInspector]
|
||||
public bool isOccupied = false; // 插槽是否已占用
|
||||
|
||||
[HideInInspector]
|
||||
public bool isLocked = false; // 插槽是否已占用
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
currentClueItem = null;
|
||||
coverClose.enabled=true;
|
||||
coverOpen.enabled=false;
|
||||
punchTapeImage.enabled=false;
|
||||
punchtapeStartpos=punchTapeImage.rectTransform;
|
||||
//slotFrame.color=Color.white;
|
||||
filmStartPos=filmImage.rectTransform;
|
||||
}
|
||||
public void SetSlotCorrect()
|
||||
{
|
||||
SetSlotLockState(true);
|
||||
}
|
||||
|
||||
public void OnDrop(PointerEventData eventData)
|
||||
{
|
||||
ClueItem clueItem = eventData.pointerDrag.GetComponent<ClueItem>();
|
||||
if (clueItem != null)
|
||||
{
|
||||
Clue clue = clueItem.GetClueData();
|
||||
interaction = clueItem.GetComponent<ClueInteraction>();
|
||||
|
||||
if (clue != null && interaction != null&&!isOccupied)
|
||||
{
|
||||
interaction.SetClueParentAndPosition(transform);
|
||||
// 更新当前的 ClueItem
|
||||
currentClueItem = clueItem;
|
||||
isOccupied = true;
|
||||
punchTapeImage.enabled=true;
|
||||
// AudioManager.RandomPlayInteraction("punchtape");
|
||||
AudioManager.Instance.PlaySfx("event:/ActionFB/mem_insert");
|
||||
StartFilmAnimation();
|
||||
FavoritesManager.Instance.CloseFavorites();
|
||||
punchTapeImage.rectTransform.DOAnchorPosY(-473f,4f)
|
||||
.OnComplete(() =>
|
||||
{
|
||||
|
||||
punchTapeImage.enabled=false;
|
||||
punchTapeImage.rectTransform.DOAnchorPosY(-3f,0.1f);
|
||||
OnClueInserted(clue);
|
||||
StopFilmAnimation();
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果类型不匹配,返回 ClueItem 到原位
|
||||
interaction?.ReturnToOriginalPosition();
|
||||
}
|
||||
}
|
||||
}
|
||||
// 释放插槽时调用
|
||||
public virtual void ReleaseSlot()
|
||||
{
|
||||
Debug.Log("释放记忆插槽");
|
||||
coverClose.enabled=false;
|
||||
coverOpen.enabled=true;
|
||||
isOccupied = false;
|
||||
currentClueItem = null;
|
||||
interaction = null;
|
||||
filmImage.rectTransform.localPosition=filmStartPos.localPosition;
|
||||
}
|
||||
|
||||
// 将 ClueItem 返回到集合的逻辑
|
||||
protected void ReturnClueToCollection(ClueItem clueItem)
|
||||
{
|
||||
// 这里调用 ClueInteraction 的返回逻辑
|
||||
if (clueItem != null)
|
||||
{
|
||||
ClueInteraction clueInteraction = clueItem.GetComponent<ClueInteraction>();
|
||||
clueInteraction?.ReturnToOriginalPosition(); // 返回到原位的逻辑
|
||||
|
||||
FavoritesManager.Instance.AddClue(clueItem.GetClueData());
|
||||
// 你也可以在这里添加额外的逻辑来处理集合的更新
|
||||
}
|
||||
}
|
||||
|
||||
// 插入线索时调用的虚方法,子类可以重写此方法以实现特定功能
|
||||
protected virtual void OnClueInserted(Clue clue)
|
||||
{
|
||||
//FavoritesManager.Instance.RemoveClue(clue);
|
||||
// 默认不做任何操作
|
||||
Debug.Log("Clue inserted in base slot.");
|
||||
}
|
||||
public void SetSlotLockState(bool lockState)
|
||||
{
|
||||
isLocked=lockState;
|
||||
}
|
||||
|
||||
private void StartFilmAnimation()
|
||||
{
|
||||
// 使用 DOTween 实现胶片的循环移动
|
||||
filmImage.rectTransform.DOLocalMoveX(-494f, 1f)
|
||||
.SetLoops(-1, LoopType.Restart)
|
||||
.SetEase(Ease.Linear);
|
||||
RoateImage.rectTransform.DORotate(new Vector3(0, 0, 360), 1f, RotateMode.FastBeyond360)
|
||||
.SetLoops(-1, LoopType.Restart)
|
||||
.SetEase(Ease.Linear);
|
||||
}
|
||||
|
||||
private void StopFilmAnimation()
|
||||
{
|
||||
// 停止胶片动画
|
||||
filmImage.rectTransform.DOKill();
|
||||
RoateImage.rectTransform.DOKill();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bd0b32d1dec841247984791d91171633
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,156 +0,0 @@
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
using DG.Tweening;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream;
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
public class FavoritesManager : MonoBehaviour
|
||||
{
|
||||
public static FavoritesManager Instance;
|
||||
|
||||
private readonly ClueData _clueData = new();
|
||||
|
||||
public GameObject favoritesUI; // 收藏夹UI
|
||||
private RectTransform favoritesUIRectTransform;
|
||||
|
||||
public Transform punchTapeContent; // 打孔带分类的Content
|
||||
|
||||
public GameObject clueItemPrefab; // 收藏夹中线索Item的预制件
|
||||
|
||||
public GameObject imageClueItemPrefab; // 收藏夹中线索Item的预制件
|
||||
|
||||
public GameObject punchTapePanel; // 打孔带分类面板
|
||||
|
||||
private Vector2 hiddenPosition; // 收藏夹隐藏时的位置
|
||||
private Vector2 visiblePosition; // 收藏夹显示时的位置
|
||||
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Instance = this;
|
||||
StorageSystem.Instance.RegisterData(_clueData);
|
||||
// 添加加载逻辑
|
||||
_clueData.LoadEvent += LoadData;
|
||||
}
|
||||
|
||||
private void LoadData(ClueData cluedata)
|
||||
{
|
||||
UpdateFavoritesUI();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
favoritesUIRectTransform = favoritesUI.GetComponent<RectTransform>();
|
||||
hiddenPosition = new Vector2(favoritesUIRectTransform.anchoredPosition.x * 2,
|
||||
favoritesUIRectTransform.anchoredPosition.y);
|
||||
visiblePosition = new Vector2(favoritesUIRectTransform.anchoredPosition.x, 0);
|
||||
// 设置收藏夹的初始位置为隐藏
|
||||
favoritesUIRectTransform.anchoredPosition = hiddenPosition;
|
||||
favoritesUI.SetActive(false);
|
||||
|
||||
ShowPunchTapeFavorites();
|
||||
}
|
||||
|
||||
public void AddClue(Clue clue)
|
||||
{
|
||||
if (clue is PunchTape punchTape)
|
||||
{
|
||||
if (!_clueData.punchTapeFavorites.Contains(punchTape))
|
||||
{
|
||||
_clueData.punchTapeFavorites.Add(punchTape);
|
||||
UpdateFavoritesUI();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveClue(Clue clue)
|
||||
{
|
||||
if (clue is PunchTape punchTape)
|
||||
{
|
||||
if (_clueData.punchTapeFavorites.Contains(punchTape))
|
||||
{
|
||||
_clueData.punchTapeFavorites.Remove(punchTape);
|
||||
UpdateFavoritesUI();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateFavoritesUI()
|
||||
{
|
||||
// 清空现有的UI元素
|
||||
foreach (Transform child in punchTapeContent)
|
||||
{
|
||||
Destroy(child.gameObject);
|
||||
}
|
||||
|
||||
// 重新创建剩余线索的UI
|
||||
foreach (PunchTape clue in _clueData.punchTapeFavorites)
|
||||
{
|
||||
GameObject clueItemGO;
|
||||
ClueItem clueItem;
|
||||
ClueInteraction clueInteraction;
|
||||
|
||||
// 根据 ClueType 实例化不同的预制件
|
||||
if (clue.ClueType == ClueType.PunchTape)
|
||||
{
|
||||
clueItemGO = Instantiate(clueItemPrefab, punchTapeContent);
|
||||
}
|
||||
else if (clue.ClueType == ClueType.ImageClue)
|
||||
{
|
||||
clueItemGO = Instantiate(imageClueItemPrefab, punchTapeContent);
|
||||
}
|
||||
else
|
||||
{
|
||||
continue; // 如果有其他 ClueType,不处理并继续
|
||||
}
|
||||
|
||||
// 设置 ClueItem 和 ClueInteraction
|
||||
clueItem = clueItemGO.GetComponent<ClueItem>();
|
||||
|
||||
clueInteraction = clueItemGO.GetComponent<ClueInteraction>();
|
||||
clueItem.Setup(clue);
|
||||
clueInteraction.SetIsFavorited(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void OpenFavorites()
|
||||
{
|
||||
UpdateFavoritesUI();
|
||||
favoritesUI.SetActive(true);
|
||||
ShowPunchTapeFavorites();
|
||||
|
||||
// 用DOTween从右侧移动到可见区域
|
||||
favoritesUIRectTransform.DOAnchorPos(visiblePosition, 0.5f); // 移动动画,持续0.5秒
|
||||
}
|
||||
|
||||
public void CloseFavorites()
|
||||
{
|
||||
UpdateFavoritesUI();
|
||||
|
||||
// 用DOTween移动回右侧屏幕外
|
||||
favoritesUIRectTransform.DOAnchorPos(hiddenPosition, 0.5f).OnComplete(() =>
|
||||
{
|
||||
favoritesUI.SetActive(false); // 移动完成后隐藏UI
|
||||
});
|
||||
}
|
||||
|
||||
private void ShowPunchTapeFavorites()
|
||||
{
|
||||
UpdateFavoritesUI();
|
||||
punchTapePanel.SetActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
public class ClueData : IData
|
||||
{
|
||||
public readonly List<PunchTape> punchTapeFavorites = new();
|
||||
public event Action<ClueData> LoadEvent;
|
||||
|
||||
public IEnumerator Load()
|
||||
{
|
||||
LoadEvent?.Invoke(this);
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a84298a2467e2934fa5e8c60405a2834
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,53 +0,0 @@
|
||||
using System.Drawing;
|
||||
using UnityEngine;
|
||||
using DG.Tweening;
|
||||
|
||||
public class MemoryClueSlot : ClueSlotBase
|
||||
{
|
||||
private MemoryProcess memoryManager;
|
||||
[HideInInspector] public PunchTape punchTape;
|
||||
|
||||
|
||||
protected override void Start()
|
||||
{
|
||||
base.Start(); // 初始化基类中的内容
|
||||
memoryManager = FindObjectOfType<MemoryProcess>();
|
||||
expectedClueType = ClueType.PunchTape;
|
||||
}
|
||||
|
||||
// 重写基类的 OnClueInserted 方法,处理播放记忆的逻辑
|
||||
protected override void OnClueInserted(Clue clue)
|
||||
{
|
||||
punchTape = clue as PunchTape;
|
||||
coverClose.enabled = true;
|
||||
coverOpen.enabled = false;
|
||||
PlayMemory(punchTape);
|
||||
FavoritesManager.Instance.RemoveClue(clue);
|
||||
}
|
||||
|
||||
private void PlayMemory(PunchTape punchTape)
|
||||
{
|
||||
if (punchTape != null)
|
||||
{
|
||||
string memoryIndex = punchTape.MemoryIndex;
|
||||
Debug.Log("播放记忆:" + memoryIndex);
|
||||
StartCoroutine(memoryManager.SearchMemory(punchTape));
|
||||
}
|
||||
}
|
||||
|
||||
private void StartFilmAnimation()
|
||||
{
|
||||
// 使用 DOTween 实现胶片的循环移动
|
||||
filmImage.rectTransform.DOLocalMoveX(-1256f, 1f)
|
||||
.SetLoops(-1, LoopType.Restart)
|
||||
.SetEase(Ease.Linear);
|
||||
}
|
||||
|
||||
private void StopFilmAnimation()
|
||||
{
|
||||
// 停止胶片动画
|
||||
filmImage.rectTransform.DOKill();
|
||||
// 重置胶片位置
|
||||
filmImage.rectTransform.localPosition = Vector3.zero;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 08ace7d1cbb872b49a73a914f1f93b10
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,44 +0,0 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
public class PunchTape : Clue
|
||||
{
|
||||
public string MemoryIndex { get; set; }
|
||||
public bool used = false;
|
||||
|
||||
// 构造函数,初始化特有属性并传递给基类
|
||||
public PunchTape(string category, string name, string memoryIndex)
|
||||
: base(category, name)
|
||||
{
|
||||
MemoryIndex = memoryIndex;
|
||||
ClueType = ClueType.PunchTape;
|
||||
}
|
||||
|
||||
// 重写 Display 方法,实现 PunchTape 的展示逻辑
|
||||
public override void Display(ClueItem clueItem)
|
||||
{
|
||||
if (clueItem == null)
|
||||
{
|
||||
Debug.LogWarning("ClueItem is null. Display aborted.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (clueItem.clueImageUI != null && used)
|
||||
{
|
||||
clueItem.clueImageUI.color = Color.grey;
|
||||
}
|
||||
|
||||
if (clueItem.stateText != null && used)
|
||||
{
|
||||
clueItem.gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
if (clueItem.categoryText != null) clueItem.categoryText.text = "分类:" + Category;
|
||||
if (clueItem.nameText != null)
|
||||
{
|
||||
clueItem.nameText.StringReference.Arguments = new object[] { LocaleClueName };
|
||||
clueItem.nameText.RefreshString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0d0a4a328f5b65340b33b1d84a108b43
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user