diff --git a/Assets/Resources/fonts_assets/M+REG200630 SDF.asset b/Assets/Resources/fonts_assets/M+REG200630 SDF.asset index de0cbb57..db4b37a9 100644 --- a/Assets/Resources/fonts_assets/M+REG200630 SDF.asset +++ b/Assets/Resources/fonts_assets/M+REG200630 SDF.asset @@ -58004,8 +58004,7 @@ Material: m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - UNDERLAY_ON + m_ValidKeywords: [] m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 diff --git a/Assets/Scenes/Main_main.unity b/Assets/Scenes/Main_main.unity index 7a58d1ba..beb76442 100644 --- a/Assets/Scenes/Main_main.unity +++ b/Assets/Scenes/Main_main.unity @@ -194,6 +194,85 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 38399685} m_CullTransparentMesh: 1 +--- !u!1 &73146554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 73146555} + - component: {fileID: 73146557} + - component: {fileID: 73146556} + m_Layer: 5 + m_Name: warningText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &73146555 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73146554} + 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: 1610130040} + 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: -176.71} + m_SizeDelta: {x: 1000, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &73146556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73146554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: cc180dff846d13a4d88ddaed6f77e5cd, type: 3} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &73146557 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73146554} + m_CullTransparentMesh: 1 --- !u!1 &224223031 GameObject: m_ObjectHideFlags: 0 @@ -758,6 +837,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: sceneName_toNextScene: UI_UI + testModeSceneName: gamePlay_gamePlay + banflag_filePath: C:/ProgramData/Bansonic/Caches/Bansonic_TestOutput + statusText: {fileID: 1696022783} + warningText: {fileID: 73146556} --- !u!4 &746865343 Transform: m_ObjectHideFlags: 0 @@ -773,6 +856,149 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &777304727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 777304730} + - component: {fileID: 777304729} + - component: {fileID: 777304728} + m_Layer: 0 + m_Name: opAudioPlayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &777304728 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 777304727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59b3d914c9079bd419564b0a7c611bed, type: 3} + m_Name: + m_EditorClassIdentifier: + audioSource: {fileID: 777304729} +--- !u!82 &777304729 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 777304727} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 8300000, guid: 8ed30022249917f4fb5c65d026b896d6, type: 3} + m_Resource: {fileID: 8300000, guid: 8ed30022249917f4fb5c65d026b896d6, type: 3} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 1 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!4 &777304730 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 777304727} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1046.8215, y: 214.38866, z: -3.6786385} + 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!1 &816275736 GameObject: m_ObjectHideFlags: 0 @@ -1439,6 +1665,8 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 736871619} + - {fileID: 1696022782} + - {fileID: 73146555} m_Father: {fileID: 1206537437} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1509,6 +1737,85 @@ Canvas: m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 +--- !u!1 &1696022781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1696022782} + - component: {fileID: 1696022784} + - component: {fileID: 1696022783} + m_Layer: 5 + m_Name: innerTestStatus + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1696022782 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696022781} + 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: 1610130040} + 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: -450.9} + m_SizeDelta: {x: 1000, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1696022783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696022781} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: cc180dff846d13a4d88ddaed6f77e5cd, type: 3} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "tester.testStatus.currentStatusText => \u56DE\u8F66\u952E\u8FDB\u5165\u6D4B\u8BD5\u7CFB\u7EDF" +--- !u!222 &1696022784 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1696022781} + m_CullTransparentMesh: 1 --- !u!1 &1735952441 GameObject: m_ObjectHideFlags: 0 @@ -1925,3 +2232,4 @@ SceneRoots: - {fileID: 1206537437} - {fileID: 1313638918} - {fileID: 1735952444} + - {fileID: 777304730} diff --git a/Assets/Scenes/gamePlay_gamePlay.unity b/Assets/Scenes/gamePlay_gamePlay.unity index 6fa17c87..4b5b20a7 100644 --- a/Assets/Scenes/gamePlay_gamePlay.unity +++ b/Assets/Scenes/gamePlay_gamePlay.unity @@ -119,6 +119,81 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &2178223 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2178224} + - component: {fileID: 2178225} + - component: {fileID: 2178226} + m_Layer: 0 + m_Name: mana + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2178224 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2178223} + 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: 1345399812} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2178225 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2178223} + m_CullTransparentMesh: 1 +--- !u!114 &2178226 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2178223} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &5114244 GameObject: m_ObjectHideFlags: 0 @@ -194,6 +269,40 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5114244} m_CullTransparentMesh: 1 +--- !u!1 &10837271 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 10837272} + m_Layer: 0 + m_Name: manaSys + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &10837272 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10837271} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -18.426758, y: -226.5, z: 4.192183} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1330006471} + - {fileID: 1126907479} + - {fileID: 1744504603} + m_Father: {fileID: 1605862688} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &15484481 GameObject: m_ObjectHideFlags: 0 @@ -855,7 +964,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 96464577} + - {fileID: 637110818} - {fileID: 955137844} + - {fileID: 247015385} - {fileID: 314063659} - {fileID: 478728646} - {fileID: 1353127880} @@ -1103,6 +1214,113 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 140317858} m_CullTransparentMesh: 1 +--- !u!1 &142814619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 142814620} + - component: {fileID: 142814622} + - component: {fileID: 142814621} + m_Layer: 0 + m_Name: ally_img_blackBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &142814620 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142814619} + 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: 1890740501} + 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: 7.306, y: 0} + m_SizeDelta: {x: 308.3879, y: 63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &142814621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142814619} + 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: 0.39215687} + 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: -3860958624100585605, guid: 81273583f50fbf84891fdf1289c56be8, 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!222 &142814622 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 142814619} + m_CullTransparentMesh: 1 +--- !u!1 &146358648 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 146358649} + m_Layer: 0 + m_Name: pauseWhiteScreen + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &146358649 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 146358648} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1046.8215, y: 214.38866, z: -3.6786385} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1954468387} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &165168687 GameObject: m_ObjectHideFlags: 0 @@ -1404,6 +1622,8 @@ Transform: m_Children: - {fileID: 1226913827} - {fileID: 1826377134} + - {fileID: 1257701893} + - {fileID: 316111372} - {fileID: 228531562} - {fileID: 2139343170} - {fileID: 2023087422} @@ -1663,7 +1883,7 @@ RectTransform: 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: 151.8, y: 1.7} + m_AnchoredPosition: {x: 151.1, y: 1.7} m_SizeDelta: {x: 38, y: 98} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &211588068 @@ -1791,6 +2011,81 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &223321624 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 223321625} + - component: {fileID: 223321627} + - component: {fileID: 223321626} + m_Layer: 0 + m_Name: manaFade + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &223321625 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 223321624} + 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: 247015385} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &223321626 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 223321624} + 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: 0.49019608} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &223321627 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 223321624} + m_CullTransparentMesh: 1 --- !u!1 &228531561 GameObject: m_ObjectHideFlags: 0 @@ -2014,7 +2309,7 @@ RectTransform: 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: 151.8, y: 1.7} + m_AnchoredPosition: {x: 151.3, y: 1.7} m_SizeDelta: {x: 39, y: 98} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &240474476 @@ -2055,6 +2350,74 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 240474474} m_CullTransparentMesh: 1 +--- !u!1 &247015384 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 247015385} + m_Layer: 0 + m_Name: manaSys + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &247015385 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 247015384} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -18.426758, y: -225.50677, z: 4.192183} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2051461372} + - {fileID: 223321625} + - {fileID: 1112327597} + m_Father: {fileID: 79799135} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &274324487 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 274324488} + m_Layer: 0 + m_Name: manaSys + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &274324488 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 274324487} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -18.426758, y: -225.9, z: 4.192183} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1771996336} + - {fileID: 322497710} + - {fileID: 2097635398} + m_Father: {fileID: 1500657742} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &276712528 GameObject: m_ObjectHideFlags: 0 @@ -2072,7 +2435,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &276712529 RectTransform: m_ObjectHideFlags: 0 @@ -2147,7 +2510,7 @@ GameObject: - component: {fileID: 288337375} - component: {fileID: 288337374} m_Layer: 0 - m_Name: Text (Legacy) (4) + m_Name: enemy m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -2214,6 +2577,85 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 288337372} m_CullTransparentMesh: 1 +--- !u!1 &288692015 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 288692016} + - component: {fileID: 288692018} + - component: {fileID: 288692017} + m_Layer: 0 + m_Name: banflagInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &288692016 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 288692015} + 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: 988467692} + 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.7816, y: -300.75} + m_SizeDelta: {x: 1291.5632, y: 500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &288692017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 288692015} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 234 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: .banflag info +--- !u!222 &288692018 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 288692015} + m_CullTransparentMesh: 1 --- !u!1 &297586361 GameObject: m_ObjectHideFlags: 0 @@ -2572,6 +3014,168 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 314063658} m_CullTransparentMesh: 1 +--- !u!1 &316111371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 316111372} + - component: {fileID: 316111373} + m_Layer: 0 + m_Name: bg_white + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &316111372 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 316111371} + serializedVersion: 2 + 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: 180474807} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &316111373 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 316111371} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 2 + m_Sprite: {fileID: 21300000, guid: 73b3dfa9754af06409b9d0666cbd824f, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 0.39215687} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 19.2, y: 10.8} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &322497709 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 322497710} + - component: {fileID: 322497712} + - component: {fileID: 322497711} + m_Layer: 0 + m_Name: manaFade + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &322497710 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 322497709} + 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: 274324488} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &322497711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 322497709} + 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: 0.49019608} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &322497712 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 322497709} + m_CullTransparentMesh: 1 --- !u!1 &323003038 GameObject: m_ObjectHideFlags: 0 @@ -2797,7 +3401,7 @@ GameObject: - component: {fileID: 340183307} - component: {fileID: 340183306} m_Layer: 0 - m_Name: Text (Legacy) + m_Name: combo m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -2975,6 +3579,213 @@ Transform: - {fileID: 1429012925} m_Father: {fileID: 1605862688} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &355994683 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1545566910} + m_Modifications: + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalPosition.y + value: -9.67 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6405457093900378514, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + propertyPath: m_Name + value: note_end_yellow + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 6405457093900378514, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + insertIndex: -1 + addedObject: {fileID: 369395972} + - targetCorrespondingSourceObject: {fileID: 6405457093900378514, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + insertIndex: -1 + addedObject: {fileID: 369395971} + - targetCorrespondingSourceObject: {fileID: 6405457093900378514, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + insertIndex: -1 + addedObject: {fileID: 369395970} + - targetCorrespondingSourceObject: {fileID: 6405457093900378514, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + insertIndex: -1 + addedObject: {fileID: 369395974} + - targetCorrespondingSourceObject: {fileID: 6405457093900378514, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + insertIndex: -1 + addedObject: {fileID: 369395973} + m_SourcePrefab: {fileID: 100100000, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} +--- !u!1 &359012520 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5395465594696621873, guid: 5db55cb783264934981a86a75405a422, type: 3} + m_PrefabInstance: {fileID: 810084795} + m_PrefabAsset: {fileID: 0} +--- !u!4 &359012521 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + m_PrefabInstance: {fileID: 810084795} + m_PrefabAsset: {fileID: 0} +--- !u!114 &359012522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 359012520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c9d972a8c1b8cd42836f774bb018416, type: 3} + m_Name: + m_EditorClassIdentifier: + redEffect: {fileID: 917849125} + greenEffect: {fileID: 1293318055} + yellowEffect: {fileID: 1067482187} + purpleEffect: {fileID: 1646396267} + blueEffect: {fileID: 628867848} +--- !u!114 &359012523 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 359012520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86977693d5a2d364bb086303f60ca1b3, type: 3} + m_Name: + m_EditorClassIdentifier: + id: 0 + trackIndex: 0 + speed: 0 + startTime: 0 + delay: 0 + isEnd: 0 + scheduledEndTime: 0 + color: + key: 0 + type: + judgeConfig: {fileID: 0} +--- !u!61 &359012524 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 359012520} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: -0.037858248, y: -0.022881746} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1.6915421, y: 0.94278574} + m_EdgeRadius: 0 +--- !u!50 &359012525 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 359012520} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!114 &359012526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 359012520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d40c6ec60e52049429740ffb978efab5, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &368084895 GameObject: m_ObjectHideFlags: 0 @@ -3021,66 +3832,241 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 756cb32790bbee94ebb3e3b1cf061392, type: 3} m_Name: m_EditorClassIdentifier: + songNametitle: {fileID: 431474993} + difficultyName: {fileID: 311523889} + difficultyID: {fileID: 1911075704} + constructionName: {fileID: 1117832161} + comboCounter: {fileID: 2028722822} + enemyCounter: {fileID: 1176013885} + enemyCounterMax: 0 + enemyCurrentCount: 0 + currentTotalScore: {fileID: 1943105383} + comboJudgeType: 0 objectFather_ally01: {fileID: 79799134} isAlly01_active: 1 teammate01_characterImage: {fileID: 96464578} teammate01_healthImage: {fileID: 1343633791} teammate01_fadehealthImage: {fileID: 1261143916} + teammate01_manaImage: {fileID: 1112327598} + teammate01_fadeManaImage: {fileID: 223321626} teammate01_nameText: {fileID: 1318630424} teammate01_healthRate: {fileID: 1287184416} teammate01_current_scoreText: {fileID: 1040113992} ally01_id: 0 teammate01_hurtRedImage: {fileID: 955137845} + teammate01_currentHP: 0 + teammate01_maxHP: 0 + teammate01_currentMana: 0 + teammate01_maxMana: 0 objectFather_ally02: {fileID: 1605862687} isAlly02_active: 1 teammate02_characterImage: {fileID: 422042276} teammate02_healthImage: {fileID: 1429012926} teammate02_fadehealthImage: {fileID: 1614078596} + teammate02_manaImage: {fileID: 1744504604} + teammate02_fadeManaImage: {fileID: 1126907480} teammate02_nameText: {fileID: 482370290} teammate02_healthRate: {fileID: 1876905527} teammate02_current_scoreText: {fileID: 75904352} ally02_id: 0 teammate02_hurtRedImage: {fileID: 769320617} + teammate02_currentHP: 0 + teammate02_maxHP: 0 + teammate02_currentMana: 0 + teammate02_maxMana: 0 objectFather_ally03: {fileID: 1500657741} isAlly03_active: 1 teammate03_characterImage: {fileID: 22229433} teammate03_healthImage: {fileID: 2098520935} teammate03_fadehealthImage: {fileID: 23667162} + teammate03_manaImage: {fileID: 2097635399} + teammate03_fadeManaImage: {fileID: 322497711} teammate03_nameText: {fileID: 1989583205} teammate03_healthRate: {fileID: 1160592429} teammate03_current_scoreText: {fileID: 1109902533} ally03_id: 0 teammate03_hurtRedImage: {fileID: 5114246} + teammate03_currentHP: 0 + teammate03_maxHP: 0 + teammate03_currentMana: 0 + teammate03_maxMana: 0 objectFather_ally04: {fileID: 1338578115} isAlly04_active: 1 teammate04_characterImage: {fileID: 415598606} teammate04_healthImage: {fileID: 1247751245} teammate04_fadehealthImage: {fileID: 806655919} + teammate04_manaImage: {fileID: 1984105090} + teammate04_fadeManaImage: {fileID: 1191601566} teammate04_nameText: {fileID: 140317860} teammate04_healthRate: {fileID: 447842044} teammate04_current_scoreText: {fileID: 422343600} ally04_id: 0 teammate04_hurtRedImage: {fileID: 323003040} + teammate04_currentHP: 0 + teammate04_maxHP: 0 + teammate04_currentMana: 0 + teammate04_maxMana: 0 objectFather_ally05: {fileID: 1890740500} isAlly05_active: 1 teammate05_characterImage: {fileID: 973438143} teammate05_healthImage: {fileID: 1664498428} teammate05_fadehealthImage: {fileID: 1429936685} + teammate05_manaImage: {fileID: 2178226} + teammate05_fadeManaImage: {fileID: 1962912656} teammate05_nameText: {fileID: 1689460706} teammate05_healthRate: {fileID: 380819026} teammate05_current_scoreText: {fileID: 646055730} ally05_id: 0 teammate05_hurtRedImage: {fileID: 1275884691} + teammate05_currentHP: 0 + teammate05_maxHP: 0 + teammate05_currentMana: 0 + teammate05_maxMana: 0 objectFather_enemy: {fileID: 1128572621} isEnemy_active: 1 currentEnemy_characterImage: {fileID: 1594358584} currentEnemy_healthImage: {fileID: 1775729905} currentEnemy_fadehealthImage: {fileID: 1337819284} currentEnemy_nameText: {fileID: 0} - currentEnemy_healthRate: {fileID: 0} + currentEnemy_healthRate: {fileID: 897840287} currentEnemy_current_scoreText: {fileID: 0} enemy_id: 0 currentEnemy_hurtRedImage: {fileID: 182107135} +--- !u!1 &369395968 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6405457093900378514, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + m_PrefabInstance: {fileID: 355994683} + m_PrefabAsset: {fileID: 0} +--- !u!4 &369395969 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1798933756466937621, guid: 445dee7ff58e8e847bec43634276b24e, type: 3} + m_PrefabInstance: {fileID: 355994683} + m_PrefabAsset: {fileID: 0} +--- !u!61 &369395970 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369395968} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: -0.037858248, y: -0.022881746} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1.6915421, y: 0.94278574} + m_EdgeRadius: 0 +--- !u!50 &369395971 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369395968} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!114 &369395972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369395968} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d40c6ec60e52049429740ffb978efab5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &369395973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369395968} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c9d972a8c1b8cd42836f774bb018416, type: 3} + m_Name: + m_EditorClassIdentifier: + redEffect: {fileID: 917849125} + greenEffect: {fileID: 1293318055} + yellowEffect: {fileID: 1067482187} + purpleEffect: {fileID: 1646396267} + blueEffect: {fileID: 628867848} +--- !u!114 &369395974 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369395968} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86977693d5a2d364bb086303f60ca1b3, type: 3} + m_Name: + m_EditorClassIdentifier: + id: 0 + trackIndex: 0 + speed: 0 + startTime: 0 + delay: 0 + isEnd: 0 + scheduledEndTime: 0 + color: + key: 0 + type: + judgeConfig: {fileID: 0} --- !u!1 &380568212 GameObject: m_ObjectHideFlags: 0 @@ -3595,11 +4581,11 @@ MonoBehaviour: - {fileID: 411632591} - {fileID: 397604448} holdNoteEndPrefabs: - - {fileID: 826812043} - - {fileID: 2112693510} - - {fileID: 1486355880} - - {fileID: 411632591} - - {fileID: 397604448} + - {fileID: 539645088} + - {fileID: 714047036} + - {fileID: 369395968} + - {fileID: 359012520} + - {fileID: 1102374847} spawnOffset: 0.1 bpm: 160 judgeConfig: {fileID: 11400000, guid: f870aa419242e72438b57ac9659f61e9, type: 2} @@ -3971,6 +4957,78 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 415598604} m_CullTransparentMesh: 1 +--- !u!1001 &420139043 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1545566910} + m_Modifications: + - target: {fileID: 442498933307554691, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_Name + value: note_end_red + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalPosition.y + value: -12.23 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + insertIndex: -1 + addedObject: {fileID: 539645095} + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + insertIndex: -1 + addedObject: {fileID: 539645094} + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + insertIndex: -1 + addedObject: {fileID: 539645092} + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + insertIndex: -1 + addedObject: {fileID: 539645091} + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + insertIndex: -1 + addedObject: {fileID: 539645090} + m_SourcePrefab: {fileID: 100100000, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} --- !u!1 &422042274 GameObject: m_ObjectHideFlags: 0 @@ -4806,6 +5864,141 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 528019488} m_CullTransparentMesh: 1 +--- !u!1 &539645088 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 442498933307554691, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + m_PrefabInstance: {fileID: 420139043} + m_PrefabAsset: {fileID: 0} +--- !u!4 &539645089 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3121760801943830496, guid: 7adfa36c1c18ea545887a1ebf66812df, type: 3} + m_PrefabInstance: {fileID: 420139043} + m_PrefabAsset: {fileID: 0} +--- !u!114 &539645090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 539645088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c9d972a8c1b8cd42836f774bb018416, type: 3} + m_Name: + m_EditorClassIdentifier: + redEffect: {fileID: 917849125} + greenEffect: {fileID: 1293318055} + yellowEffect: {fileID: 1067482187} + purpleEffect: {fileID: 1646396267} + blueEffect: {fileID: 628867848} +--- !u!114 &539645091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 539645088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86977693d5a2d364bb086303f60ca1b3, type: 3} + m_Name: + m_EditorClassIdentifier: + id: 0 + trackIndex: 0 + speed: 0 + startTime: 0 + delay: 0 + isEnd: 0 + scheduledEndTime: 0 + color: + key: 0 + type: + judgeConfig: {fileID: 0} +--- !u!61 &539645092 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 539645088} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: -0.037858248, y: -0.022881746} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1.6915421, y: 0.94278574} + m_EdgeRadius: 0 +--- !u!50 &539645094 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 539645088} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!114 &539645095 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 539645088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d40c6ec60e52049429740ffb978efab5, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &567765763 GameObject: m_ObjectHideFlags: 0 @@ -5018,7 +6211,7 @@ Canvas: m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 m_VertexColorAlwaysGammaSpace: 1 - m_AdditionalShaderChannelsFlag: 0 + m_AdditionalShaderChannelsFlag: 25 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 999 @@ -5133,6 +6326,81 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &637110817 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 637110818} + - component: {fileID: 637110820} + - component: {fileID: 637110819} + m_Layer: 0 + m_Name: ally_img_blackBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &637110818 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 637110817} + 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: 79799135} + 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: 7.2544, y: 0} + m_SizeDelta: {x: 309, y: 63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &637110819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 637110817} + 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: 0.39215687} + 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: -3860958624100585605, guid: 81273583f50fbf84891fdf1289c56be8, 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!222 &637110820 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 637110817} + m_CullTransparentMesh: 1 --- !u!1 &646055728 GameObject: m_ObjectHideFlags: 0 @@ -5687,6 +6955,302 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &714047036 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 442498933307554691, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + m_PrefabInstance: {fileID: 1111430939} + m_PrefabAsset: {fileID: 0} +--- !u!4 &714047037 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + m_PrefabInstance: {fileID: 1111430939} + m_PrefabAsset: {fileID: 0} +--- !u!61 &714047039 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714047036} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: -0.037858248, y: -0.022881746} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1.6915421, y: 0.94278574} + m_EdgeRadius: 0 +--- !u!50 &714047042 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714047036} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!114 &714047043 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714047036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d40c6ec60e52049429740ffb978efab5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &714047044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714047036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c9d972a8c1b8cd42836f774bb018416, type: 3} + m_Name: + m_EditorClassIdentifier: + redEffect: {fileID: 917849125} + greenEffect: {fileID: 1293318055} + yellowEffect: {fileID: 1067482187} + purpleEffect: {fileID: 1646396267} + blueEffect: {fileID: 628867848} +--- !u!114 &714047045 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714047036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86977693d5a2d364bb086303f60ca1b3, type: 3} + m_Name: + m_EditorClassIdentifier: + id: 0 + trackIndex: 0 + speed: 0 + startTime: 0 + delay: 0 + isEnd: 0 + scheduledEndTime: 0 + color: + key: 0 + type: + judgeConfig: {fileID: 0} +--- !u!1 &715955930 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 715955931} + - component: {fileID: 715955933} + - component: {fileID: 715955932} + m_Layer: 0 + m_Name: info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &715955931 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 715955930} + 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: 988467692} + 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: -145, y: 0.000015259} + m_SizeDelta: {x: 1000, y: 500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &715955932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 715955930} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 234 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u2014\u2014\u2014\u2014Main Keybinding List\u2014\u2014\u2014\u2014\n\"Space\" + => (\u51C6\u5907\u5B8C\u6BD5\u65F6)\u542F\u52A8\u8BD5\u73A9\n\u201CEsc\u201D + => (\u4E3B\u52A8\u6682\u505C\u65F6)\u7EE7\u7EED\u6E38\u620F\n\u201CBackSpace\u201D + => \u8FD4\u56DE\u4E3B\u754C\u9762\n\n\u2014\u2014\u2014\u2014Command + for Administrators\u2014\u2014\u2014\u2014\n? -\u5E2E\u52A9\n\u5DF2\u7981\u7528 + gameplay_noteDetails \u97F3\u51FB\u79D2\u8868cmd\n\u5DF2\u7981\u7528 + gameplay_fenglingyueying \u5F00\u53D1\u8005\u4FEE\u6539\u5668\n\u5DF2\u542F\u7528 + gameplay_thisGameJSON \u672C\u6E38\u620F\u8BE6\u7EC6\u4FE1\u606F\u663E\u793A" +--- !u!222 &715955933 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 715955930} + m_CullTransparentMesh: 1 +--- !u!1 &736017756 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 736017757} + - component: {fileID: 736017759} + - component: {fileID: 736017758} + m_Layer: 0 + m_Name: ally_img_blackBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &736017757 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 736017756} + 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: 1338578116} + 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: 7.0973, y: 0} + m_SizeDelta: {x: 308.8054, y: 63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &736017758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 736017756} + 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: 0.39215687} + 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: -3860958624100585605, guid: 81273583f50fbf84891fdf1289c56be8, 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!222 &736017759 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 736017756} + m_CullTransparentMesh: 1 --- !u!1 &754533168 GameObject: m_ObjectHideFlags: 0 @@ -5937,7 +7501,7 @@ RectTransform: 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: 151.8, y: 1.7} + m_AnchoredPosition: {x: 151, y: 1.7} m_SizeDelta: {x: 38, y: 98} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &766745680 @@ -6123,6 +7687,7 @@ Transform: - {fileID: 1583364742} - {fileID: 1337819283} - {fileID: 1775729904} + - {fileID: 897840286} m_Father: {fileID: 1128572622} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &801049735 @@ -6532,6 +8097,78 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 808337281} m_CullTransparentMesh: 1 +--- !u!1001 &810084795 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1545566910} + m_Modifications: + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalPosition.y + value: -14.93 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731529299376462625, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5395465594696621873, guid: 5db55cb783264934981a86a75405a422, type: 3} + propertyPath: m_Name + value: note_end_purple + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 5395465594696621873, guid: 5db55cb783264934981a86a75405a422, type: 3} + insertIndex: -1 + addedObject: {fileID: 359012526} + - targetCorrespondingSourceObject: {fileID: 5395465594696621873, guid: 5db55cb783264934981a86a75405a422, type: 3} + insertIndex: -1 + addedObject: {fileID: 359012525} + - targetCorrespondingSourceObject: {fileID: 5395465594696621873, guid: 5db55cb783264934981a86a75405a422, type: 3} + insertIndex: -1 + addedObject: {fileID: 359012524} + - targetCorrespondingSourceObject: {fileID: 5395465594696621873, guid: 5db55cb783264934981a86a75405a422, type: 3} + insertIndex: -1 + addedObject: {fileID: 359012523} + - targetCorrespondingSourceObject: {fileID: 5395465594696621873, guid: 5db55cb783264934981a86a75405a422, type: 3} + insertIndex: -1 + addedObject: {fileID: 359012522} + m_SourcePrefab: {fileID: 100100000, guid: 5db55cb783264934981a86a75405a422, type: 3} --- !u!1 &816351228 GameObject: m_ObjectHideFlags: 0 @@ -6837,6 +8474,85 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &861157997 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 861157998} + - component: {fileID: 861158000} + - component: {fileID: 861157999} + m_Layer: 0 + m_Name: banflagTitle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &861157998 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861157997} + 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: 988467692} + 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: -145, y: -273.6} + m_SizeDelta: {x: 1000, y: 500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &861157999 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861157997} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 234 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u5DF2\u8BFB\u53D6\u7684banflag\u6865\u63A5\u6587\u4EF6\u4FE1\u606F\uFF1A" +--- !u!222 &861158000 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861157997} + m_CullTransparentMesh: 1 --- !u!1 &865113942 GameObject: m_ObjectHideFlags: 0 @@ -7040,6 +8756,142 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 895917648} m_CullTransparentMesh: 1 +--- !u!1 &897840285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 897840286} + - component: {fileID: 897840288} + - component: {fileID: 897840287} + m_Layer: 0 + m_Name: enemyHealthRate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &897840286 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 897840285} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 780102676} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 835, y: 375.9} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &897840287 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 897840285} + 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: enemyCurrentHealth / enemyMaxHealth + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: c95ab61f13e39254e8e3cbf4059d88c5, type: 2} + m_sharedMaterial: {fileID: 4492750392876140565, guid: c95ab61f13e39254e8e3cbf4059d88c5, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4283845183 + m_fontColor: {r: 0.24705882, g: 0.2901961, b: 0.3372549, 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: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 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: -295.93655, 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!222 &897840288 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 897840285} + m_CullTransparentMesh: 1 --- !u!1 &917849125 GameObject: m_ObjectHideFlags: 0 @@ -7191,12 +9043,19 @@ MonoBehaviour: - {fileID: 1486355880} - {fileID: 411632591} - {fileID: 397604448} + holdNoteEndPrefabs: + - {fileID: 539645088} + - {fileID: 714047036} + - {fileID: 369395968} + - {fileID: 359012520} + - {fileID: 1102374847} startNotePrefabs: - {fileID: 1572820063} - {fileID: 2072610041} - {fileID: 1370459973} - {fileID: 1938112561} - {fileID: 1090508766} + verboseLogging: 0 --- !u!4 &924692021 Transform: m_ObjectHideFlags: 0 @@ -7674,6 +9533,46 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 973438141} m_CullTransparentMesh: 1 +--- !u!1 &988467691 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 988467692} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &988467692 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 988467691} + 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: 2015034642} + - {fileID: 1363892669} + - {fileID: 715955931} + - {fileID: 861157998} + - {fileID: 288692016} + m_Father: {fileID: 1954468387} + 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 &1010143986 GameObject: m_ObjectHideFlags: 0 @@ -8411,7 +10310,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: I + m_Text: K --- !u!222 &1044607016 CanvasRenderer: m_ObjectHideFlags: 0 @@ -8530,6 +10429,81 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &1067619027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1067619028} + - component: {fileID: 1067619030} + - component: {fileID: 1067619029} + m_Layer: 0 + m_Name: ally_img_blackBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1067619028 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1067619027} + 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: 1500657742} + 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: 6.375, y: 0} + m_SizeDelta: {x: 310.25, y: 63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1067619029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1067619027} + 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: 0.39215687} + 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: -3860958624100585605, guid: 81273583f50fbf84891fdf1289c56be8, 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!222 &1067619030 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1067619027} + m_CullTransparentMesh: 1 --- !u!1 &1073653892 GameObject: m_ObjectHideFlags: 0 @@ -8617,6 +10591,156 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1080131453 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1080131454} + - component: {fileID: 1080131456} + - component: {fileID: 1080131455} + m_Layer: 0 + m_Name: manaBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1080131454 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1080131453} + 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: 1345399812} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1080131455 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1080131453} + 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: 1751117602139145963, guid: 3858b450f07da8e4ca311bdd1a060c85, 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!222 &1080131456 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1080131453} + m_CullTransparentMesh: 1 +--- !u!1 &1089378447 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1089378448} + - component: {fileID: 1089378450} + - component: {fileID: 1089378449} + m_Layer: 0 + m_Name: manaBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1089378448 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089378447} + 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: 1851773930} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1089378449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089378447} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 1751117602139145963, guid: 3858b450f07da8e4ca311bdd1a060c85, 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!222 &1089378450 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089378447} + m_CullTransparentMesh: 1 --- !u!1 &1090508766 stripped GameObject: m_CorrespondingSourceObject: {fileID: 2003114048812172666, guid: 51c4e71bfbceadb4fa7414140a2ced21, type: 3} @@ -8806,6 +10930,141 @@ Transform: - {fileID: 595209177} m_Father: {fileID: 368084896} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1102374847 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2003114048812172666, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + m_PrefabInstance: {fileID: 1163572053} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1102374848 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + m_PrefabInstance: {fileID: 1163572053} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1102374849 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102374847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c9d972a8c1b8cd42836f774bb018416, type: 3} + m_Name: + m_EditorClassIdentifier: + redEffect: {fileID: 917849125} + greenEffect: {fileID: 1293318055} + yellowEffect: {fileID: 1067482187} + purpleEffect: {fileID: 1646396267} + blueEffect: {fileID: 628867848} +--- !u!114 &1102374850 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102374847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86977693d5a2d364bb086303f60ca1b3, type: 3} + m_Name: + m_EditorClassIdentifier: + id: 0 + trackIndex: 0 + speed: 0 + startTime: 0 + delay: 0 + isEnd: 0 + scheduledEndTime: 0 + color: + key: 0 + type: + judgeConfig: {fileID: 0} +--- !u!61 &1102374851 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102374847} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: -0.037858248, y: -0.022881746} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 1.6915421, y: 0.94278574} + m_EdgeRadius: 0 +--- !u!50 &1102374852 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102374847} + m_BodyType: 1 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!114 &1102374853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102374847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d40c6ec60e52049429740ffb978efab5, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1109902531 GameObject: m_ObjectHideFlags: 0 @@ -9017,6 +11276,153 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1110906159} m_CullTransparentMesh: 1 +--- !u!1001 &1111430939 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1545566910} + m_Modifications: + - target: {fileID: 442498933307554691, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_Name + value: note_end_green + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalPosition.y + value: -8.65 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121760801943830496, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + insertIndex: -1 + addedObject: {fileID: 714047043} + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + insertIndex: -1 + addedObject: {fileID: 714047042} + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + insertIndex: -1 + addedObject: {fileID: 714047039} + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + insertIndex: -1 + addedObject: {fileID: 714047045} + - targetCorrespondingSourceObject: {fileID: 442498933307554691, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} + insertIndex: -1 + addedObject: {fileID: 714047044} + m_SourcePrefab: {fileID: 100100000, guid: 7360c84a94118e24b8dee535bbb5c350, type: 3} +--- !u!1 &1112327596 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1112327597} + - component: {fileID: 1112327599} + - component: {fileID: 1112327598} + m_Layer: 0 + m_Name: mana + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1112327597 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112327596} + 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: 247015385} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1112327598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112327596} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1112327599 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1112327596} + m_CullTransparentMesh: 1 --- !u!1 &1113650921 GameObject: m_ObjectHideFlags: 0 @@ -9233,6 +11639,165 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1117832159} m_CullTransparentMesh: 1 +--- !u!1 &1120454669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1120454670} + - component: {fileID: 1120454672} + - component: {fileID: 1120454671} + m_Layer: 0 + m_Name: enemy (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1120454670 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120454669} + 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: 1813259939} + 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: 860.9, y: 154} + m_SizeDelta: {x: 329.8, y: 308} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1120454671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120454669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.24705882, g: 0.2901961, b: 0.3372549, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: cc180dff846d13a4d88ddaed6f77e5cd, type: 3} + m_FontSize: 18 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u8C03\u8BD5\u5DF2\u542F\u7528 \u6A21\u5F0Fdebug\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\ndisable + teamSys.tsConfig\nlanguage=\"en_US\"\nthisGame.globalInfo=\"null\"\n\nversion + : versionCode disable\ndisable debugLogE&W\nenable + allClearsafe\n\nforce settings + factory\nserver develop&test + Server\n\n1920x1080 240fps\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\n\u6E20\u9053\u670D\u4FE1\u606F\u672A\u6D4B\u901A\uFF1A\u8FDE\u63A5\u8D85\u65F6" +--- !u!222 &1120454672 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1120454669} + m_CullTransparentMesh: 1 +--- !u!1 &1126907478 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1126907479} + - component: {fileID: 1126907481} + - component: {fileID: 1126907480} + m_Layer: 0 + m_Name: manaFade + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1126907479 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1126907478} + 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: 10837272} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1126907480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1126907478} + 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: 0.49019608} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1126907481 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1126907478} + m_CullTransparentMesh: 1 --- !u!1 &1128572621 GameObject: m_ObjectHideFlags: 0 @@ -9579,6 +12144,78 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1160592427} m_CullTransparentMesh: 1 +--- !u!1001 &1163572053 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1545566910} + m_Modifications: + - target: {fileID: 2003114048812172666, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_Name + value: note_end_blue + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalPosition.y + value: -13.57 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2731718846901287739, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 2003114048812172666, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + insertIndex: -1 + addedObject: {fileID: 1102374853} + - targetCorrespondingSourceObject: {fileID: 2003114048812172666, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + insertIndex: -1 + addedObject: {fileID: 1102374852} + - targetCorrespondingSourceObject: {fileID: 2003114048812172666, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + insertIndex: -1 + addedObject: {fileID: 1102374851} + - targetCorrespondingSourceObject: {fileID: 2003114048812172666, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + insertIndex: -1 + addedObject: {fileID: 1102374850} + - targetCorrespondingSourceObject: {fileID: 2003114048812172666, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} + insertIndex: -1 + addedObject: {fileID: 1102374849} + m_SourcePrefab: {fileID: 100100000, guid: 3e6352d9bc93add45b52903bfe8da4a5, type: 3} --- !u!1 &1176013883 GameObject: m_ObjectHideFlags: 0 @@ -9591,7 +12228,7 @@ GameObject: - component: {fileID: 1176013886} - component: {fileID: 1176013885} m_Layer: 0 - m_Name: Text (Legacy) (5) + m_Name: enemyID m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -9658,6 +12295,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1176013883} m_CullTransparentMesh: 1 +--- !u!1 &1191601563 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1191601564} + - component: {fileID: 1191601565} + - component: {fileID: 1191601566} + m_Layer: 0 + m_Name: manaFade + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1191601564 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1191601563} + 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: 1851773930} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1191601565 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1191601563} + m_CullTransparentMesh: 1 +--- !u!114 &1191601566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1191601563} + 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: 0.49019608} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &1193288561 GameObject: m_ObjectHideFlags: 0 @@ -9959,6 +12671,93 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1247751243} m_CullTransparentMesh: 1 +--- !u!1 &1257701892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1257701893} + - component: {fileID: 1257701894} + m_Layer: 0 + m_Name: bg_replace + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1257701893 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1257701892} + serializedVersion: 2 + 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: 180474807} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1257701894 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1257701892} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 21300000, guid: 73b3dfa9754af06409b9d0666cbd824f, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 19.2, y: 10.8} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1261143914 GameObject: m_ObjectHideFlags: 0 @@ -10047,6 +12846,7 @@ GameObject: - component: {fileID: 1261342021} - component: {fileID: 1261342020} - component: {fileID: 1261342022} + - component: {fileID: 1261342023} m_Layer: 0 m_Name: gameManager m_TagString: Untagged @@ -10115,6 +12915,21 @@ MonoBehaviour: notes: [] is_official: 1 noteSpawner: {fileID: 398515602} + parsedTitle: + parsedComposer: + parsedIllustrator: + parsedCharter: + parsedBeatmapId: + parsedDifficultyName: + parsedCreatedDate: + parsedLastSavedTime: + parsedMusicFile: + parsedBackgroundFile: + parsedDuration: 0 + parsedBpm: 0 + parsedDifficulty: 0 + parsedNoteAmount: 0 + globalDelaySeconds: 0 --- !u!114 &1261342021 MonoBehaviour: m_ObjectHideFlags: 0 @@ -10130,6 +12945,11 @@ MonoBehaviour: beatmapManager: {fileID: 1261342020} noteSpawner: {fileID: 398515602} musicSource: {fileID: 845021791} + JSONPath: + audioPath: + bgPicPath: + backgroundRenderer: {fileID: 1257701894} + banflagTextUI: {fileID: 288692017} --- !u!114 &1261342022 MonoBehaviour: m_ObjectHideFlags: 0 @@ -10142,6 +12962,19 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d40c6ec60e52049429740ffb978efab5, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &1261342023 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1261342016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56cb7fcf9dd21cf4fa4ffbc82abcc2b5, type: 3} + m_Name: + m_EditorClassIdentifier: + overlayRoot: {fileID: 146358648} --- !u!1 &1262509305 GameObject: m_ObjectHideFlags: 0 @@ -10212,7 +13045,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: A + m_Text: D --- !u!222 &1262509308 CanvasRenderer: m_ObjectHideFlags: 0 @@ -10855,6 +13688,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1319979204} m_CullTransparentMesh: 1 +--- !u!1 &1330006470 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1330006471} + - component: {fileID: 1330006473} + - component: {fileID: 1330006472} + m_Layer: 0 + m_Name: manaBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1330006471 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1330006470} + 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: 10837272} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1330006472 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1330006470} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 1751117602139145963, guid: 3858b450f07da8e4ca311bdd1a060c85, 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!222 &1330006473 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1330006470} + m_CullTransparentMesh: 1 --- !u!1 &1337819282 GameObject: m_ObjectHideFlags: 0 @@ -10960,7 +13868,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 415598605} + - {fileID: 736017757} - {fileID: 323003039} + - {fileID: 1851773930} - {fileID: 240474475} - {fileID: 1031966695} - {fileID: 1799628405} @@ -11116,6 +14026,40 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1343633789} m_CullTransparentMesh: 1 +--- !u!1 &1345399811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1345399812} + m_Layer: 0 + m_Name: manaSys + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1345399812 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1345399811} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -18.426758, y: -226.7, z: 4.192183} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1080131454} + - {fileID: 1962912654} + - {fileID: 2178224} + m_Father: {fileID: 1890740501} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1348186113 GameObject: m_ObjectHideFlags: 0 @@ -11290,6 +14234,85 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1363892668 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1363892669} + - component: {fileID: 1363892671} + - component: {fileID: 1363892670} + m_Layer: 0 + m_Name: ready + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1363892669 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363892668} + 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: 988467692} + 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: -447, y: 310} + m_SizeDelta: {x: 500, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1363892670 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363892668} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3} + m_FontSize: 72 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 6 + m_MaxSize: 72 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u5DF2\u5C31\u7EEA/\u6682\u505C" +--- !u!222 &1363892671 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363892668} + m_CullTransparentMesh: 1 --- !u!1 &1369160196 GameObject: m_ObjectHideFlags: 0 @@ -12347,7 +15370,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 22229432} + - {fileID: 1067619028} - {fileID: 5114245} + - {fileID: 274324488} - {fileID: 766745679} - {fileID: 1473738231} - {fileID: 1904135295} @@ -12423,7 +15448,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: U + m_Text: J --- !u!222 &1509558885 CanvasRenderer: m_ObjectHideFlags: 0 @@ -12537,6 +15562,11 @@ Transform: - {fileID: 1370459974} - {fileID: 1938112562} - {fileID: 1090508767} + - {fileID: 539645089} + - {fileID: 714047037} + - {fileID: 369395969} + - {fileID: 359012521} + - {fileID: 1102374848} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1551841546 @@ -13148,7 +16178,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 422042275} + - {fileID: 2070694053} - {fileID: 769320616} + - {fileID: 10837272} - {fileID: 211588067} - {fileID: 354769596} - {fileID: 1412993398} @@ -13853,6 +16885,81 @@ Transform: m_Children: [] m_Father: {fileID: 1932304154} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1744504602 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1744504603} + - component: {fileID: 1744504605} + - component: {fileID: 1744504604} + m_Layer: 0 + m_Name: mana + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1744504603 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744504602} + 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: 10837272} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1744504604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744504602} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1744504605 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744504602} + m_CullTransparentMesh: 1 --- !u!1 &1755319617 GameObject: m_ObjectHideFlags: 0 @@ -14007,6 +17114,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1756974164} m_CullTransparentMesh: 1 +--- !u!1 &1771996335 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1771996336} + - component: {fileID: 1771996338} + - component: {fileID: 1771996337} + m_Layer: 0 + m_Name: manaBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1771996336 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1771996335} + 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: 274324488} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1771996337 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1771996335} + 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: 1751117602139145963, guid: 3858b450f07da8e4ca311bdd1a060c85, 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!222 &1771996338 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1771996335} + m_CullTransparentMesh: 1 --- !u!1 &1773847585 GameObject: m_ObjectHideFlags: 0 @@ -14231,6 +17413,7 @@ RectTransform: - {fileID: 2056317114} - {fileID: 1943105382} - {fileID: 288337373} + - {fileID: 1120454670} - {fileID: 1176013884} m_Father: {fileID: 1551841547} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -14313,7 +17496,7 @@ GameObject: - component: {fileID: 1826377134} - component: {fileID: 1826377135} m_Layer: 0 - m_Name: "\u80CC\u666F (1)" + m_Name: bg_default m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -14459,7 +17642,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: D + m_Text: F --- !u!222 &1848101699 CanvasRenderer: m_ObjectHideFlags: 0 @@ -14468,6 +17651,40 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1848101696} m_CullTransparentMesh: 1 +--- !u!1 &1851773929 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1851773930} + m_Layer: 0 + m_Name: manaSys + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1851773930 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1851773929} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -18.426758, y: -225.8, z: 4.192183} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1089378448} + - {fileID: 1191601564} + - {fileID: 1984105088} + m_Father: {fileID: 1338578116} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1855943968 GameObject: m_ObjectHideFlags: 0 @@ -14709,7 +17926,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 973438142} + - {fileID: 142814620} - {fileID: 1275884690} + - {fileID: 1345399812} - {fileID: 973422076} - {fileID: 1231454080} - {fileID: 775038613} @@ -15169,7 +18388,7 @@ GameObject: - component: {fileID: 1943105384} - component: {fileID: 1943105383} m_Layer: 0 - m_Name: Text (Legacy) (3) + m_Name: pmscoreText m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -15280,6 +18499,121 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1954468386 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1954468387} + - component: {fileID: 1954468390} + - component: {fileID: 1954468389} + - component: {fileID: 1954468388} + - component: {fileID: 1954468391} + m_Layer: 0 + m_Name: test_pauseCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1954468387 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1954468386} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 988467692} + m_Father: {fileID: 146358649} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1954468388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1954468386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1954468389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1954468386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1954468390 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1954468386} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 1 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 10492 + m_TargetDisplay: 0 +--- !u!225 &1954468391 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1954468386} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!1 &1961847126 GameObject: m_ObjectHideFlags: 0 @@ -15416,6 +18750,156 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1962912653 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1962912654} + - component: {fileID: 1962912655} + - component: {fileID: 1962912656} + m_Layer: 0 + m_Name: manaFade + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962912654 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962912653} + 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: 1345399812} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1962912655 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962912653} + m_CullTransparentMesh: 1 +--- !u!114 &1962912656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962912653} + 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: 0.49019608} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1984105087 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1984105088} + - component: {fileID: 1984105089} + - component: {fileID: 1984105090} + m_Layer: 0 + m_Name: mana + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1984105088 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984105087} + 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: 1851773930} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1984105089 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984105087} + m_CullTransparentMesh: 1 +--- !u!114 &1984105090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984105087} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &1989375498 GameObject: m_ObjectHideFlags: 0 @@ -15451,7 +18935,15 @@ MonoBehaviour: - {fileID: 2007116131} - {fileID: 1961847129} - {fileID: 43301197} + trackKeyTexts: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} showJudgeText: 1 + keyActiveColor: {r: 0.9811321, g: 0.26992652, b: 0.0786757, a: 1} + keyInactiveColor: {r: 0, g: 0, b: 0, a: 1} perfectColor: {r: 0.015686274, g: 1, b: 0.20994367, a: 1} greatColor: {r: 0.93851304, g: 1, b: 0, a: 1} goodColor: {r: 1, g: 0.57014704, b: 0, a: 1} @@ -15744,6 +19236,81 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2015034641 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2015034642} + - component: {fileID: 2015034644} + - component: {fileID: 2015034643} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2015034642 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2015034641} + 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: 988467692} + 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: 1920, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2015034643 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2015034641} + 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: 0.36078432} + 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!222 &2015034644 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2015034641} + m_CullTransparentMesh: 1 --- !u!1 &2023087421 GameObject: m_ObjectHideFlags: 0 @@ -15792,7 +19359,7 @@ GameObject: - component: {fileID: 2028722823} - component: {fileID: 2028722822} m_Layer: 0 - m_Name: Text (Legacy) (1) + m_Name: comboCount m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -16010,8 +19577,8 @@ RectTransform: 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: 70.3, y: -1.7000122} - m_SizeDelta: {x: 160, y: 30} + m_AnchoredPosition: {x: 2.13, y: 1.2402} + m_SizeDelta: {x: 37.4697, y: 20.1144} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2047419400 MonoBehaviour: @@ -16035,18 +19602,18 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 12800000, guid: 775c674e81662c644b64550d2e8f74e0, type: 3} - m_FontSize: 23 + m_FontSize: 12 m_FontStyle: 1 m_BestFit: 0 - m_MinSize: 10 + m_MinSize: 1 m_MaxSize: 40 - m_Alignment: 0 + m_Alignment: 3 m_AlignByGeometry: 0 m_RichText: 1 m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: Y + m_Text: Space --- !u!222 &2047419401 CanvasRenderer: m_ObjectHideFlags: 0 @@ -16055,6 +19622,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2047419398} m_CullTransparentMesh: 1 +--- !u!1 &2051461371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2051461372} + - component: {fileID: 2051461374} + - component: {fileID: 2051461373} + m_Layer: 0 + m_Name: manaBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2051461372 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2051461371} + 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: 247015385} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2051461373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2051461371} + 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: 1751117602139145963, guid: 3858b450f07da8e4ca311bdd1a060c85, 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!222 &2051461374 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2051461371} + m_CullTransparentMesh: 1 --- !u!1 &2056317113 GameObject: m_ObjectHideFlags: 0 @@ -16067,7 +19709,7 @@ GameObject: - component: {fileID: 2056317116} - component: {fileID: 2056317115} m_Layer: 0 - m_Name: Text (Legacy) (2) + m_Name: pmscore m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -16134,6 +19776,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2056317113} m_CullTransparentMesh: 1 +--- !u!1 &2070694052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2070694053} + - component: {fileID: 2070694055} + - component: {fileID: 2070694054} + m_Layer: 0 + m_Name: ally_img_blackBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2070694053 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070694052} + 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: 1605862688} + 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: 6.1663, y: 0} + m_SizeDelta: {x: 308, y: 63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2070694054 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070694052} + 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: 0.39215687} + 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: -3860958624100585605, guid: 81273583f50fbf84891fdf1289c56be8, 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!222 &2070694055 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070694052} + m_CullTransparentMesh: 1 --- !u!1 &2072610041 stripped GameObject: m_CorrespondingSourceObject: {fileID: 442498933307554691, guid: 49d46cb6b3c970c41a034949463f4014, type: 3} @@ -16366,6 +20083,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2082299191} m_CullTransparentMesh: 1 +--- !u!1 &2097635397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2097635398} + - component: {fileID: 2097635400} + - component: {fileID: 2097635399} + m_Layer: 0 + m_Name: mana + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2097635398 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2097635397} + 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: 274324488} + 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: 15.7051, y: 190.8} + m_SizeDelta: {x: 293.9706, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2097635399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2097635397} + 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: -4938708238312656229, guid: 9ab0c1c45de8ffb4db02c2a67e42e984, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2097635400 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2097635397} + m_CullTransparentMesh: 1 --- !u!1 &2098520933 GameObject: m_ObjectHideFlags: 0 @@ -19052,3 +22844,4 @@ SceneRoots: - {fileID: 1526173829} - {fileID: 180857950} - {fileID: 368084896} + - {fileID: 146358649} diff --git a/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_blue.prefab b/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_blue.prefab index 7c071a53..074752c9 100644 --- a/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_blue.prefab +++ b/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_blue.prefab @@ -59,7 +59,7 @@ Transform: serializedVersion: 2 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_LocalScale: {x: 1, y: 1.55, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2263522284658762355} @@ -81,6 +81,9 @@ SpriteRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -105,7 +108,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 5 - m_Sprite: {fileID: 21300000, guid: 339f619e059e6834f89a59c13fe0c10b, type: 3} + m_Sprite: {fileID: 6310259935858931691, guid: d381e4c4716f9e3488081213e0fa6a91, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 diff --git a/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_purple.prefab b/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_purple.prefab index 39856a98..234933cf 100644 --- a/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_purple.prefab +++ b/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_purple.prefab @@ -27,7 +27,7 @@ Transform: serializedVersion: 2 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_LocalScale: {x: 1, y: 1.55, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4315408729767036619} @@ -49,6 +49,9 @@ SpriteRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -73,7 +76,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 5 - m_Sprite: {fileID: 21300000, guid: 4f10bd02ad451bd40aa825fa96498a92, type: 3} + m_Sprite: {fileID: 1793073554066047434, guid: cd5f7bd8b189d0e42b47339d778e3c98, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 diff --git a/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_red.prefab b/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_red.prefab index 7234953d..6b5a11d3 100644 --- a/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_red.prefab +++ b/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_red.prefab @@ -27,7 +27,7 @@ Transform: serializedVersion: 2 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_LocalScale: {x: 1, y: 1.55, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 9014057759470265209} @@ -49,6 +49,9 @@ SpriteRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -73,7 +76,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 5 - m_Sprite: {fileID: 21300000, guid: 48a052357ac8b864f8b04ca11cb56f13, type: 3} + m_Sprite: {fileID: -5883283227122429457, guid: ed3bf5f4c36b02148861e8dbb4de694b, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 diff --git a/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_yellow.prefab b/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_yellow.prefab index f7cfc625..956e8693 100644 --- a/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_yellow.prefab +++ b/Assets/artworks/gamePlay_gamePlay/notes/emptyNotes/note_empty_yellow.prefab @@ -59,7 +59,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 255.5, y: 52.7, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 1, y: 1.55, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6007900324437599834} @@ -81,6 +81,9 @@ SpriteRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -105,7 +108,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 5 - m_Sprite: {fileID: 21300000, guid: aa398f61feb62e144baf6e2ddddbfbe9, type: 3} + m_Sprite: {fileID: 1599650296112252125, guid: 66a6ccdb8302be64ca2750260ec2db8c, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 diff --git a/Assets/artworks/gamePlay_gamePlay/notes/note_hold_blue.prefab b/Assets/artworks/gamePlay_gamePlay/notes/note_hold_blue.prefab index b2e7a9d6..daf63bee 100644 --- a/Assets/artworks/gamePlay_gamePlay/notes/note_hold_blue.prefab +++ b/Assets/artworks/gamePlay_gamePlay/notes/note_hold_blue.prefab @@ -59,7 +59,7 @@ Transform: serializedVersion: 2 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_LocalScale: {x: 1, y: 1.35, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2731718846901287739} @@ -81,6 +81,9 @@ SpriteRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -105,7 +108,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 5 - m_Sprite: {fileID: 21300000, guid: 8edcc4cee1d38b14280d1ed898de224c, type: 3} + m_Sprite: {fileID: -39665783693660792, guid: 09af81c0a9c6d2546ae2970b20df9fac, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 diff --git a/Assets/artworks/gamePlay_gamePlay/notes/note_hold_purple.prefab b/Assets/artworks/gamePlay_gamePlay/notes/note_hold_purple.prefab index b69e6c2c..7a2510f0 100644 --- a/Assets/artworks/gamePlay_gamePlay/notes/note_hold_purple.prefab +++ b/Assets/artworks/gamePlay_gamePlay/notes/note_hold_purple.prefab @@ -27,7 +27,7 @@ Transform: serializedVersion: 2 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_LocalScale: {x: 1, y: 1.35, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2731529299376462625} @@ -49,6 +49,9 @@ SpriteRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -73,7 +76,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 5 - m_Sprite: {fileID: 21300000, guid: 5505fbd4c1632064dae07e098a224917, type: 3} + m_Sprite: {fileID: 6419268056307889554, guid: 06839cbc2eed42c47a78fb2caa81975c, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 diff --git a/Assets/artworks/gamePlay_gamePlay/notes/note_hold_yellow.prefab b/Assets/artworks/gamePlay_gamePlay/notes/note_hold_yellow.prefab index 650fff89..5a41be8c 100644 --- a/Assets/artworks/gamePlay_gamePlay/notes/note_hold_yellow.prefab +++ b/Assets/artworks/gamePlay_gamePlay/notes/note_hold_yellow.prefab @@ -27,7 +27,7 @@ Transform: serializedVersion: 2 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_LocalScale: {x: 1, y: 1.35, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1798933756466937621} @@ -49,6 +49,9 @@ SpriteRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -73,7 +76,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 5 - m_Sprite: {fileID: 21300000, guid: abf81e091f11aed43849b2032bd50076, type: 3} + m_Sprite: {fileID: 7355821296298914402, guid: 2d4e0d04c2d8c6a4ca97c60fa8c38358, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 diff --git a/Assets/scripts/Main_main/pressStart.cs b/Assets/scripts/Main_main/pressStart.cs index a5107a8a..1d77e355 100644 --- a/Assets/scripts/Main_main/pressStart.cs +++ b/Assets/scripts/Main_main/pressStart.cs @@ -2,25 +2,285 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using UnityEngine.UI; public class pressStart : MonoBehaviour { public string sceneName_toNextScene = "selectYourSongFirst"; + public string testModeSceneName = "gamePlay_gamePlay"; + [SerializeField] private string banflag_filePath = "C:/ProgramData/Bansonic/Caches/Bansonic_TestOutput"; + private bool banflag_exists; + public static string testmode_audioFile_path; + public static string testmode_bgPicFile_path; + public static string testmode_beatmapJSON_path; + + // new: store banflag content for other scenes to read + public static string banflagContent = string.Empty; + + // UI text to show status + public Text statusText; + public Text warningText; + // polling + private Coroutine pollCoroutine; + private float pollInterval = 3f; // Start is called before the first frame update void Start() { - //sceneName_toNextScene = "Songs_Select"; + // sceneName_toNextScene = "Songs_Select"; + banflag_exists = false; + testmode_audioFile_path = string.Empty; + testmode_bgPicFile_path = string.Empty; + testmode_beatmapJSON_path = string.Empty; + banflagContent = string.Empty; + + // Ensure status text shows idle + UpdateStatus("谱师测试专用:回车Enter进入游戏测试版", Color.green); } // Update is called once per frame void Update() { - if (Input.GetKeyDown(KeyCode.Space) || - Input.GetMouseButtonDown(0)) + if (Input.GetKeyDown(KeyCode.Space) /*|| Input.GetMouseButtonDown(0)*/) { - SceneManager.LoadScene(sceneName_toNextScene); + GameConfig.testMode = false; + warningText.text = "你正在尝试进入未完整开发版本,点击y键忽略警告进入。"; + if (Input.GetKeyDown(KeyCode.Y)) + { + SceneManager.LoadScene(sceneName_toNextScene); + } + } + // Enter进入测试模式,不加载json,开始轮询banflag + if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.KeypadEnter)) + { + Debug.Log("Entering test mode"); + GameConfig.testMode = true; + + // start polling for banflag every 3 seconds + if (pollCoroutine != null) + { + StopCoroutine(pollCoroutine); + } + pollCoroutine = StartCoroutine(PollForBanflagAndProceed()); + } + } + + private IEnumerator PollForBanflagAndProceed() + { + UpdateStatus("Waiting for banflag...", new Color(1f, 0.5f, 0f)); // orange + + while (true) + { + bool found = check_banflag_testBanflag(); + if (found) + { + UpdateStatus("Banflag detected. Loading test mode...", Color.green); + // small delay to show status + yield return new WaitForSeconds(0.5f); + SceneManager.LoadScene(testModeSceneName); + yield break; + } + else + { + UpdateStatus("Waiting for banflag...", new Color(1f, 0.5f, 0f)); // orange + } + + yield return new WaitForSeconds(pollInterval); + } + } + + private void UpdateStatus(string message, Color color) + { + if (statusText != null) + { + statusText.text = message; + statusText.color = color; + } + Debug.Log(message); + } + + private string NormalizeToForwardSlashes(string path) + { + if (string.IsNullOrEmpty(path)) return string.Empty; + try + { + // Get full absolute path to remove any relative segments + string full = Path.GetFullPath(path); + // Replace backslashes with forward slashes + string fwd = full.Replace('\\', '/'); + // Collapse multiple slashes into single + string collapsed = Regex.Replace(fwd, "/{2,}", "/"); + // Remove trailing slash except when path is root like "C:/" + if (collapsed.Length > 3 && collapsed.EndsWith("/")) + collapsed = collapsed.TrimEnd('/'); + return collapsed; + } + catch + { + // Fallback: replace backslashes and collapse + string f = path.Replace('\\', '/'); + string c = Regex.Replace(f, "/{2,}", "/"); + if (c.Length > 3 && c.EndsWith("/")) c = c.TrimEnd('/'); + return c; + } + } + + // returns true if banflag detected + private bool check_banflag_testBanflag() + { + try + { + // reset previous results + banflag_exists = false; + testmode_audioFile_path = string.Empty; + testmode_bgPicFile_path = string.Empty; + testmode_beatmapJSON_path = string.Empty; + banflagContent = string.Empty; + + if (string.IsNullOrEmpty(banflag_filePath)) + { + Debug.LogWarning("banflag_filePath 未配置。"); + UpdateStatus("Error: banflag path not configured", Color.red); + return false; + } + + string filePath = Path.Combine(banflag_filePath, "test.banflag"); + if (!File.Exists(filePath)) + { + Debug.LogWarning($"未找到对应 banflag 文件: {filePath}"); + return false; + } + + // mark exists + banflag_exists = true; + + byte[] data = File.ReadAllBytes(filePath); + if (data == null || data.Length == 0) + { + Debug.LogWarning($"banflag 文件为空: {filePath}"); + } + else + { + // 以UTF8读取(可能为可序列化文本) + string text = null; + try + { + text = Encoding.UTF8.GetString(data); + } + catch + { + text = null; + } + + bool looksLikeText = false; + if (!string.IsNullOrEmpty(text)) + { + // 是否包含大量不可打印字符 + int nonPrintable = 0; + int checkLen = Mathf.Min(256, text.Length); + for (int i = 0; i < checkLen; i++) + { + char c = text[i]; + if (char.IsControl(c) && c != '\r' && c != '\n' && c != '\t') nonPrintable++; + } + looksLikeText = (nonPrintable == 0); + } + + if (looksLikeText) + { + Debug.Log($"找到 banflag 文件: {filePath}\n内容:\n{text}"); + // store the readable content for other scenes + banflagContent = text; + } + else + { + // 不是可读文本转为base64 + string base64 = System.Convert.ToBase64String(data); + Debug.Log($"找到 banflag 文件 (二进制): {filePath},长度={data.Length} bytes。Base64 前200 字符供查看:\n{(base64.Length > 200 ? base64.Substring(0,200) + "..." : base64)}"); + banflagContent = $"[Binary Data] Length: {data.Length} bytes"; + } + } + + // 搜索同目录下指定类型文件 + string dir = Path.GetDirectoryName(filePath); + if (string.IsNullOrEmpty(dir)) dir = banflag_filePath; + + // find JSON + string foundJson = string.Empty; + try + { + string[] jsons = Directory.GetFiles(dir, "*.json", SearchOption.TopDirectoryOnly); + if (jsons != null && jsons.Length > 0) + { + foundJson = jsons[0]; + } + } + catch { } + + // find audio: mp3, wav, ogg (in that priority) + string foundAudio = string.Empty; + try + { + string[] exts = new string[] { "*.mp3", "*.wav", "*.ogg" }; + foreach (var pat in exts) + { + string[] matches = Directory.GetFiles(dir, pat, SearchOption.TopDirectoryOnly); + if (matches != null && matches.Length > 0) + { + foundAudio = matches[0]; + break; + } + } + } + catch { } + + // find image: jpg/jpeg, png (priority jpg then png) + string foundImage = string.Empty; + try + { + string[] imgExts = new string[] { "*.jpg", "*.jpeg", "*.png" }; + foreach (var pat in imgExts) + { + string[] matches = Directory.GetFiles(dir, pat, SearchOption.TopDirectoryOnly); + if (matches != null && matches.Length > 0) + { + foundImage = matches[0]; + break; + } + } + } + catch { } + + // normalize and assign + testmode_beatmapJSON_path = string.IsNullOrEmpty(foundJson) ? string.Empty : NormalizeToForwardSlashes(foundJson); + testmode_audioFile_path = string.IsNullOrEmpty(foundAudio) ? string.Empty : NormalizeToForwardSlashes(foundAudio); + testmode_bgPicFile_path = string.IsNullOrEmpty(foundImage) ? string.Empty : NormalizeToForwardSlashes(foundImage); + + // Debug the normalized paths + Debug.Log($"banflag_exists={banflag_exists}"); + Debug.Log($"testmode_beatmapJSON_path = {testmode_beatmapJSON_path}"); + Debug.Log($"testmode_audioFile_path = {testmode_audioFile_path}"); + Debug.Log($"testmode_bgPicFile_path = {testmode_bgPicFile_path}"); + + UpdateStatus("Banflag found", Color.green); + + return banflag_exists; + } + catch (System.Exception ex) + { + Debug.LogError($"读取 banflag 文件时出错: {ex}"); + UpdateStatus("Error reading banflag", Color.red); + // ensure flags cleared on error + banflag_exists = false; + testmode_audioFile_path = string.Empty; + testmode_bgPicFile_path = string.Empty; + testmode_beatmapJSON_path = string.Empty; + banflagContent = string.Empty; + return false; } } } \ No newline at end of file diff --git a/Assets/scripts/gamePlay_gameplay/BeatmapManager.cs b/Assets/scripts/gamePlay_gameplay/BeatmapManager.cs index 34f57922..55871e45 100644 --- a/Assets/scripts/gamePlay_gameplay/BeatmapManager.cs +++ b/Assets/scripts/gamePlay_gameplay/BeatmapManager.cs @@ -11,15 +11,24 @@ public class BeatmapManager : MonoBehaviour // 音符生成器引用 public NoteSpawner noteSpawner; - + // Extra fields from beatmap JSON (stored temporarily) + [HideInInspector] public string parsedTitle; + [HideInInspector] public string parsedComposer; + [HideInInspector] public string parsedIllustrator; + [HideInInspector] public string parsedCharter; + [HideInInspector] public string parsedBeatmapId; + [HideInInspector] public string parsedDifficultyName; + [HideInInspector] public string parsedCreatedDate; + [HideInInspector] public string parsedLastSavedTime; + [HideInInspector] public string parsedMusicFile; + [HideInInspector] public string parsedBackgroundFile; - // 保存谱面数据到 JSON 文件 - //public void SaveBeatmap(string fileName) - //{ - // string json = JsonUtility.ToJson(beatmap, true); // 格式化 JSON 输出 - // File.WriteAllText(Application.dataPath + "/" + fileName, json); - // Debug.Log("谱面已保存:" + Application.dataPath + "/" + fileName); - //} + [HideInInspector] public int parsedDuration; // as int per request + [HideInInspector] public int parsedBpm; // as int per request + [HideInInspector] public int parsedDifficulty; // duplicate of beatmap.difficulty + [HideInInspector] public int parsedNoteAmount; + + [HideInInspector] public float globalDelaySeconds = 0f; // 从 JSON 文件加载谱面数据 public void LoadBeatmap(string fileName) @@ -28,92 +37,124 @@ public class BeatmapManager : MonoBehaviour if (File.Exists(path)) { string json = File.ReadAllText(path); - beatmap = JsonUtility.FromJson(json); - Debug.Log("谱面已加载:" + json); - - // 在加载后立即调用音符生成 - noteSpawner.LoadBeatmap(beatmap); - + Debug.Log("谱面 JSON 已读取: " + path); + ProcessJsonAndLoad(json); } else { Debug.LogError("文件不存在:" + path); } } + + // 新增:从原始 JSON 字符串加载谱面(允许任意磁盘路径先读取后传入) + public void LoadBeatmapFromJsonString(string json) + { + if (string.IsNullOrEmpty(json)) + { + Debug.LogError("LoadBeatmapFromJsonString: json is null or empty"); + return; + } + ProcessJsonAndLoad(json); + } + + // 新增:解析 JSON 但不启动 NoteSpawner(用于 test mode 的延迟开始) + public bool ParseJsonOnly(string json) + { + if (string.IsNullOrEmpty(json)) + { + Debug.LogError("ParseJsonOnly: json is empty"); + return false; + } + + // Parse main beatmap + Beatmap parsed = null; + try + { + parsed = JsonUtility.FromJson(json); + } + catch (System.Exception ex) + { + Debug.LogError($"ParseJsonOnly 解析 Beatmap 失败: {ex}"); + return false; + } + + if (parsed == null) + { + Debug.LogError("ParseJsonOnly: 解析 Beatmap 返回 null"); + return false; + } + + // Parse extras + BeatmapExtra extra = null; + try + { + extra = JsonUtility.FromJson(json); + } + catch { extra = null; } + + if (extra != null) + { + parsedTitle = extra.title; + parsedComposer = extra.composer; + parsedIllustrator = extra.illustrator; + parsedCharter = extra.charter; + parsedBeatmapId = extra.beatmapId; + parsedDifficultyName = extra.difficultyName; + parsedCreatedDate = extra.createdDate; + parsedLastSavedTime = extra.lastSavedTime; + parsedMusicFile = extra.musicFile; + parsedBackgroundFile = extra.backgroundFile; + + parsedDuration = extra.duration; + parsedBpm = extra.bpm; + parsedDifficulty = extra.difficulty; + parsedNoteAmount = extra.noteAmount; + globalDelaySeconds = extra.globalDelaySeconds; + + if (!string.IsNullOrEmpty(extra.musicFile)) parsed.musicFile = extra.musicFile; + if (!string.IsNullOrEmpty(extra.backgroundFile)) parsed.backgroundFile = extra.backgroundFile; + } + else + { + parsedTitle = parsed.title; + parsedComposer = parsed.composer; + parsedIllustrator = parsed.illustrator; + parsedCharter = parsed.charter; + parsedBeatmapId = parsed.beatmapId; + parsedDifficultyName = parsed.difficultyName; + parsedCreatedDate = parsed.createdDate; + parsedMusicFile = parsed.musicFile; + parsedBackgroundFile = parsed.backgroundFile; + + parsedDuration = Mathf.RoundToInt(parsed.duration); + parsedBpm = Mathf.RoundToInt(parsed.bpm); + parsedDifficulty = parsed.difficulty; + } + + // NOTE: Do NOT modify parsed.notes here. globalDelaySeconds will be applied to audio playback instead. + + beatmap = parsed; + Debug.Log("ParseJsonOnly: parsed beatmap " + beatmap.title); + return true; + } + + // 直接传入已经解析的 Beatmap(兼容旧调用) public void LoadBeatmap(Beatmap loadedBeatmap) { beatmap = loadedBeatmap; - Debug.Log("谱面已加载:" + beatmap.title); - - // 在加载后立即调用音符生成 + Debug.Log("谱面已加载(来自 Beatmap 对象):" + (beatmap != null ? beatmap.title : "null")); + // No globalDelaySeconds available in this path. Call NoteSpawner directly. noteSpawner.LoadBeatmap(beatmap); } - //public void LoadBeatmapFromFile(string fileName) - //{ - // string path = Application.persistentDataPath + "/" + fileName; - // if (File.Exists(path)) - // { - // string json = File.ReadAllText(path); - // Beatmap beatmap = JsonUtility.FromJson(json); - // beatmapManager.LoadBeatmap(beatmap); // 使用 LoadBeatmap 方法传递 Beatmap 对象 - // } - // else - // { - // Debug.LogError("文件不存在:" + path); - // } - //} - - // 创建一个示例谱面并保存 - //public void CreateSampleBeatmap() - //{ - // beatmap = new Beatmap - // { - // title = "Moonlight Sonata", - // composer = "Ludwig van Beethoven", - // illustrator = "John Doe", - // charter = "Jane Smith", - // beatmapId = "ML-001", - // duration = 120.5f, - // bpm = 128f, - // difficulty = 5, - // difficultyName = "Hard", - // createdDate = System.DateTime.Now.ToString("yyyy-MM-dd"), - // musicFile = "moonlight_sonata.mp3", - // backgroundFile = "moonlight_art.png", - - // tracks = new TrackData[] - // { - // new TrackData { color = "red" }, - // new TrackData { color = "green" }, - // new TrackData { color = "yellow" }, - // new TrackData { color = "purple" }, - // new TrackData { color = "blue" } - // }, - - // notes = new NoteData[] - // { - // new NoteData { trackIndex = 0, time = 1.0f, color = "red", type = "tap", length = 0.0f }, - // new NoteData { trackIndex = 4, time = 2.0f, color = "blue", type = "tap", length = 0.0f }, - // new NoteData { trackIndex = 1, time = 3.5f, color = "green", type = "tap", length = 0.0f }, - // new NoteData { trackIndex = 2, time = 3.5f, color = "yellow", type = "tap", length = 0.0f }, - // new NoteData { trackIndex = 2, time = 3.5f, color = "yellow", type = "tap", length = 0.0f }, - // new NoteData { trackIndex = 3, time = 3.5f, color = "purple", type = "tap", length = 0.0f }, - // } - // }; - - // SaveBeatmap("test_beatmap.json"); - //} - - // 读取并加载当前谱面到音符生成器 + // 读取并加载当前谱面到音符生成器(备用) public void LoadBeatmapFromFile() { string path = Application.streamingAssetsPath + "/Emilia_demo.json"; if (File.Exists(path)) { string json = File.ReadAllText(path); - beatmap = JsonUtility.FromJson(json); - noteSpawner.LoadBeatmap(beatmap); + ProcessJsonAndLoad(json); } else { @@ -124,8 +165,127 @@ public class BeatmapManager : MonoBehaviour // 在 Start() 方法中初始化 void Start() { - // 这里可以选择在启动时创建一个示例谱面并加载 - //CreateSampleBeatmap(); // 创建并保存一个示例谱面 - LoadBeatmap("Emilia_demo.json"); // 加载并实例化音符 + // 如果处于测试模式,则跳过自动加载谱面 + if (GameConfig.testMode) + { + Debug.Log("Test mode active: skipping automatic beatmap load in BeatmapManager.Start"); + } + else + { + // 加载默认谱面 + LoadBeatmap("Emilia_demo.json"); // 加载并实例化音符 + } + + } + + // Helper class used to parse extra fields from JSON that Beatmap doesn't define + [System.Serializable] + private class BeatmapExtra + { + public string title; + public string composer; + public string illustrator; + public string charter; + public string beatmapId; + public int duration; // as int per request + public int bpm; // as int per request + public int difficulty; + public string difficultyName; + public string createdDate; + public string lastSavedTime; + public string musicFile; + public string backgroundFile; + public int noteAmount; + public float globalDelaySeconds; + } + + // Parse JSON string to Beatmap and extras, then pass to NoteSpawner + private void ProcessJsonAndLoad(string json) + { + if (string.IsNullOrEmpty(json)) + { + Debug.LogError("ProcessJsonAndLoad: json is empty"); + return; + } + + // Parse main beatmap + Beatmap parsed = null; + try + { + parsed = JsonUtility.FromJson(json); + } + catch (System.Exception ex) + { + Debug.LogError($"解析 Beatmap 失败: {ex}"); + return; + } + + if (parsed == null) + { + Debug.LogError("解析 Beatmap 返回 null"); + return; + } + + // Parse extras using BeatmapExtra which contains the requested fields and types + BeatmapExtra extra = null; + try + { + extra = JsonUtility.FromJson(json); + } + catch { extra = null; } + + if (extra != null) + { + // store into manager fields + parsedTitle = extra.title; + parsedComposer = extra.composer; + parsedIllustrator = extra.illustrator; + parsedCharter = extra.charter; + parsedBeatmapId = extra.beatmapId; + parsedDifficultyName = extra.difficultyName; + parsedCreatedDate = extra.createdDate; + parsedLastSavedTime = extra.lastSavedTime; + parsedMusicFile = extra.musicFile; + parsedBackgroundFile = extra.backgroundFile; + + parsedDuration = extra.duration; + parsedBpm = extra.bpm; + parsedDifficulty = extra.difficulty; + parsedNoteAmount = extra.noteAmount; + globalDelaySeconds = extra.globalDelaySeconds; + + // If JSON contains absolute paths for music/background, copy into parsed object for later use + if (!string.IsNullOrEmpty(extra.musicFile)) parsed.musicFile = extra.musicFile; + if (!string.IsNullOrEmpty(extra.backgroundFile)) parsed.backgroundFile = extra.backgroundFile; + + Debug.Log($"Beatmap extras parsed: title={parsedTitle}, composer={parsedComposer}, duration={parsedDuration}, bpm={parsedBpm}, difficulty={parsedDifficulty}, noteAmount={parsedNoteAmount}, globalDelaySeconds={globalDelaySeconds}"); + } + else + { + // Fallback to populate from parsed Beatmap where possible + parsedTitle = parsed.title; + parsedComposer = parsed.composer; + parsedIllustrator = parsed.illustrator; + parsedCharter = parsed.charter; + parsedBeatmapId = parsed.beatmapId; + parsedDifficultyName = parsed.difficultyName; + parsedCreatedDate = parsed.createdDate; + parsedMusicFile = parsed.musicFile; + parsedBackgroundFile = parsed.backgroundFile; + + // convert types + parsedDuration = Mathf.RoundToInt(parsed.duration); + parsedBpm = Mathf.RoundToInt(parsed.bpm); + parsedDifficulty = parsed.difficulty; + + Debug.LogWarning("BeatmapExtra not found in JSON; populated limited fields from Beatmap."); + } + + // NOTE: Do NOT modify parsed.notes here. globalDelaySeconds will be applied to audio playback instead. + + // assign and hand off to spawner + beatmap = parsed; + Debug.Log("谱面已加载:" + beatmap.title); + noteSpawner.LoadBeatmap(beatmap); } } diff --git a/Assets/scripts/gamePlay_gameplay/GameManager.cs b/Assets/scripts/gamePlay_gameplay/GameManager.cs index 67607c4f..a1003ecc 100644 --- a/Assets/scripts/gamePlay_gameplay/GameManager.cs +++ b/Assets/scripts/gamePlay_gameplay/GameManager.cs @@ -1,11 +1,58 @@ using System.IO; using UnityEngine; +using UnityEngine.UI; +using System.Collections; public class GameManager : MonoBehaviour { public BeatmapManager beatmapManager; // 负责加载和管理谱面 public NoteSpawner noteSpawner; // 音符生成器 public AudioSource musicSource; // 音乐播放器 + [Header("paths")] + // 变量声明不再从静态变量中读取 + public string JSONPath; + public string audioPath; + public string bgPicPath; + + // Optional: sprite renderer to show background image + public SpriteRenderer backgroundRenderer; + + // NEW: UI Text to display banflag content from pressStart + [Header("Debug / Test")] + public Text banflagTextUI; + + private void OnEnable() + { + // 订阅暂停管理器的事件 + if (PauseManager.Instance != null) + { + PauseManager.Instance.OnPauseStateChanged += HandlePauseStateChanged; + } + } + + private void OnDisable() + { + // 取消订阅暂停管理器的事件 + if (PauseManager.Instance != null) + { + PauseManager.Instance.OnPauseStateChanged -= HandlePauseStateChanged; + } + } + + private void HandlePauseStateChanged(bool isPaused) + { + if (musicSource != null) + { + if (isPaused) + { + musicSource.Pause(); + } + else + { + musicSource.UnPause(); + } + } + } void Start() { @@ -16,6 +63,34 @@ public class GameManager : MonoBehaviour if (noteSpawner == null) Debug.LogError("noteSpawner 未赋值!"); if (musicSource == null) Debug.LogError("musicSource 未赋值!"); + // 如果 pressStart 已经读取了 banflag 内容,则把它显示在 UI(如果分配了) + if (banflagTextUI != null && !string.IsNullOrEmpty(pressStart.banflagContent)) + { + banflagTextUI.text = pressStart.banflagContent; + Debug.Log("Displayed banflag content from pressStart into banflagTextUI."); + } + + // 在 test mode 下使用外部路径预加载资源并暂停系统,等待按空格继续 + if (GameConfig.testMode) + { + // 延迟赋值:在 Start() 中获取静态路径,此时 pressStart.cs 已经运行并更新了它们 + JSONPath = pressStart.testmode_beatmapJSON_path; + audioPath = pressStart.testmode_audioFile_path; + bgPicPath = pressStart.testmode_bgPicFile_path; + + Debug.Log("Test mode active: using external paths to preload assets"); + + // also update banflag UI if content exists + if (banflagTextUI != null && !string.IsNullOrEmpty(pressStart.banflagContent)) + { + banflagTextUI.text = pressStart.banflagContent; + } + + StartCoroutine(HandleTestModeStartup()); + return; + } + + // 以下为原有流程(已保留注释,未改写) // 在游戏开始时加载并初始化谱面 string beatmapFilePath = Path.Combine(Application.streamingAssetsPath, "Emilia_demo.json"); @@ -26,6 +101,7 @@ public class GameManager : MonoBehaviour } string json = File.ReadAllText(beatmapFilePath); + // 假设 Beatmap 是一个已定义的类 Beatmap beatmap = JsonUtility.FromJson(json); // 解析 JSON 为 Beatmap 对象 if (beatmap == null) @@ -37,7 +113,7 @@ public class GameManager : MonoBehaviour beatmapManager.LoadBeatmap(beatmap); // 传递给 BeatmapManager noteSpawner.LoadBeatmap(beatmap); // 传递给 NoteSpawner - // 播放背景音乐 + // 播放背景音乐(延迟播放由 beatmapManager.globalDelaySeconds 决定) if (!string.IsNullOrEmpty(beatmap.musicFile)) { AudioClip musicClip = Resources.Load(beatmap.musicFile); @@ -48,7 +124,16 @@ public class GameManager : MonoBehaviour else { musicSource.clip = musicClip; - musicSource.Play(); + float delay = beatmapManager != null ? beatmapManager.globalDelaySeconds : 0f; + if (delay > 0f) + { + musicSource.PlayDelayed(delay); + Debug.Log($"Scheduled music to play after {delay} seconds."); + } + else + { + musicSource.Play(); + } } } else @@ -56,4 +141,195 @@ public class GameManager : MonoBehaviour Debug.LogError("谱面中 musicFile 为空!"); } } -} + + private IEnumerator HandleTestModeStartup() + { + // Preload audio from audioPath (absolute) + if (!string.IsNullOrEmpty(audioPath)) + { + if (!File.Exists(audioPath)) + { + Debug.LogError($"TestMode audio file not found: {audioPath}"); + } + else + { + // 注意:这里仍然使用过时的 WWW,建议替换为 UnityWebRequest + string url = "file://" + audioPath; + using (var www = new WWW(url)) + { + yield return www; + if (!string.IsNullOrEmpty(www.error)) + { + Debug.LogError($"加载测试模式音频失败: {www.error}"); + } + else + { + try + { + AudioClip clip = www.GetAudioClip(false, false); + if (clip == null) + { + Debug.LogError("从文件获取 AudioClip 失败"); + } + else + { + musicSource.clip = clip; + musicSource.loop = false; + Debug.Log("TestMode audio loaded into AudioSource"); + } + } + catch (System.Exception ex) + { + Debug.LogError($"将音频设置到 AudioSource 时出错: {ex}"); + } + } + } + } + } + else + { + Debug.LogWarning("TestMode audioPath 未配置。"); + } + + // Preload background image into sprite renderer + if (backgroundRenderer != null) + { + if (!string.IsNullOrEmpty(bgPicPath)) + { + if (!File.Exists(bgPicPath)) + { + Debug.LogError($"TestMode background image not found: {bgPicPath}"); + } + else + { + byte[] imgBytes = null; + try + { + imgBytes = File.ReadAllBytes(bgPicPath); + } + catch (System.Exception ex) + { + Debug.LogError($"读取背景图片文件出错: {ex}"); + } + + if (imgBytes != null) + { + Texture2D tex = new Texture2D(2, 2); + if (tex.LoadImage(imgBytes)) + { + Sprite s = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f)); + backgroundRenderer.sprite = s; + + // 【修改点:设置 SpriteRenderer 透明度为 255 (1.0f)】 + Color color = backgroundRenderer.color; + color.a = 1.0f; + backgroundRenderer.color = color; + + // 保持比例不变的最大适应由场景布局决定,记录 assignment + Debug.Log("Background sprite assigned (ensure your SpriteRenderer size fits scene)"); + } + else + { + Debug.LogError($"无法从字节创建 Texture2D: {bgPicPath}"); + } + } + } + } + else + { + Debug.LogWarning("TestMode bgPicPath 未配置。"); + } + } + else + { + Debug.LogWarning("backgroundRenderer 未配置,跳过背景加载。"); + } + + // Read JSON from JSONPath and parse via BeatmapManager.ParseJsonOnly + if (!string.IsNullOrEmpty(JSONPath)) + { + if (!File.Exists(JSONPath)) + { + Debug.LogError($"TestMode beatmap JSON not found: {JSONPath}"); + yield break; // abort + } + + string jsonContent = null; + try + { + jsonContent = File.ReadAllText(JSONPath); + } + catch (System.Exception ex) + { + Debug.LogError($"读取 TestMode JSON 文件出错: {ex}"); + yield break; + } + + bool parsed = beatmapManager.ParseJsonOnly(jsonContent); + if (!parsed) + { + Debug.LogError("ParseJsonOnly 失败,停止启动测试模式。"); + yield break; + } + + // Do not start spawning yet. We will start after unpausing. + Debug.Log("Beatmap parsed (deferred start). Ready to unpause."); + } + else + { + Debug.LogError("TestMode JSONPath 未配置。"); + yield break; + } + + // Pause the system until Space pressed + // Use PauseManager instead of directly setting Time.timeScale + PauseManager.Instance?.Pause(true); + UpdateStatusOnConsole("Paused: press Space to start playback"); + + // Wait for space key down (use unscaled input loop) + while (!Input.GetKeyDown(KeyCode.Space)) + { + yield return null; + } + + // Resume using PauseManager + PauseManager.Instance?.Pause(false); + + // Start spawning using the parsed beatmap + if (beatmapManager.beatmap != null) + { + beatmapManager.LoadBeatmap(beatmapManager.beatmap); + } + else + { + Debug.LogError("启动播放失败:beatmap 未解析或为空"); + yield break; + } + + // If audio clip was loaded into musicSource.clip, play now with delay from parsed globalDelaySeconds + float delaySeconds = beatmapManager != null ? beatmapManager.globalDelaySeconds : 0f; + if (musicSource.clip != null) + { + if (delaySeconds > 0f) + { + musicSource.PlayDelayed(delaySeconds); + Debug.Log($"Scheduled test-mode music to play after {delaySeconds} seconds."); + } + else + { + musicSource.Play(); + } + } + else + { + Debug.LogWarning("TestMode: no audio clip loaded into AudioSource; skipping play."); + } + + UpdateStatusOnConsole("Playback started"); + } + + private void UpdateStatusOnConsole(string message) + { + Debug.Log(message); + } +} \ No newline at end of file diff --git a/Assets/scripts/gamePlay_gameplay/HoldNote.cs b/Assets/scripts/gamePlay_gameplay/HoldNote.cs index b3c56aa7..89569b88 100644 --- a/Assets/scripts/gamePlay_gameplay/HoldNote.cs +++ b/Assets/scripts/gamePlay_gameplay/HoldNote.cs @@ -105,6 +105,7 @@ public class HoldNote : BaseNote this.noteID = id.ToString(); this.keyToPress = key; this.noteColor = color; + // hitTime now uses real time base passed in as 'time' plus delay this.hitTime = time + delay; this.segment = (delay == 0f) ? NoteSegment.Start : (isEnd ? NoteSegment.End : NoteSegment.Middle); @@ -117,6 +118,9 @@ public class HoldNote : BaseNote else Debug.Log($"HoldNoteJudgeConfig: perfect={judgeConfig.perfectRange}, great={judgeConfig.greatRange}, good={judgeConfig.goodRange}, miss={judgeConfig.missRange}"); + // Debug info to help investigate end note visibility + Debug.Log($"[HoldNote.Setup] id={noteID} segment={segment} type={type} hitTime={hitTime:F2} scheduledEnd={scheduledEndTime:F2} color={color} track={trackIndex}"); + // 鍦 Setup 鏃舵敞鍐屽垵濮嬬姸鎬 JudgeManager.Instance?.RegisterNoteReleased(noteID, false); if (segment == NoteSegment.Start) @@ -134,82 +138,80 @@ public class HoldNote : BaseNote // 濡傛灉褰撳墠鐗囨宸茬粡鍒ゅ畾杩囷紝鐩存帴杩斿洖 if (isJudged) return; + // 鑷姩 Miss 鍒ゅ畾锛氬綋闊崇缁忚繃鍒ゅ畾绾夸笖鏈鍒ゅ畾鏃 + if (hasEnteredLine && !isJudged) + { + if (segment == NoteSegment.Start && Time.time > hitTime + judgeConfig?.missRange) + { + Debug.Log($"[HoldNote] START娈佃秴鏃惰嚜鍔∕iss: {noteColor}"); + HandleStart(); + isJudged = true; + } + else if (segment == NoteSegment.End && Time.time > scheduledEndTime + (judgeConfig?.missRange ?? 0.3f)) + { + Debug.Log($"[HoldNote] END娈佃秴鏃惰嚜鍔∕iss: {noteColor}"); + HandleEnd(true); + isJudged = true; + } + } + // **閫氱敤闀挎寜鐘舵佹洿鏂帮細** - // 鍙湁褰搃sHoldActive涓簍rue鏃舵墠妫鏌ユ澗寮鎿嶄綔锛岄伩鍏嶈鍒 - // 涓斾粎鍦℅etKeyUp鏃舵洿鏂扮姸鎬侊紝閬垮厤閲嶅鎿嶄綔 if (isHoldActive && Input.GetKeyUp(keyToPress)) { isHoldActive = false; Debug.Log($"[HoldNote] 鎸夐敭 {keyToPress} 鏉惧紑锛岄暱鎸夌姸鎬佸け鏁堛侼oteID: {noteID}, Segment: {segment}, Type: {type}"); - // 濡傛灉鏄腑闂存鎴栫粨鏉熸锛屼笖鍥犱负鏉炬墜瀵艰嚧闀挎寜澶辨晥锛屽彲浠ョ珛鍗冲洖鏀 - if (segment == NoteSegment.Middle || segment == NoteSegment.End) + + // 褰撶帺瀹舵澗寮鎸夐敭鏃讹紝鍚 JudgeManager 娉ㄥ唽璇ラ暱闊崇宸茶閲婃斁锛岀‘淇濆熬閮ㄨ兘姝g‘妫鏌ラ噴鏀剧姸鎬 + if (!hasReleased) { - // 娉ㄦ剰锛欵nd娈电殑鍒ゅ畾鍦℉andleEnd閲岋紝鏉炬墜鍙槸璁﹊sHoldActive涓篺alse锛屼笉浠h〃End娈靛垽瀹氬凡瀹屾垚 - // 濡傛灉 End 娈电殑鍒ゅ畾绐楀彛杩樻病杩囷紝鏉炬墜鍚 isHoldActive = false锛孍nd 娈靛湪 OnTriggerExit2D 鎵嶄細鍥炴敹 - // 鎴栬呭湪 HandleEnd 涔嬪墠鏉炬墜瀵艰嚧闀挎寜澶辨晥锛孒andleEnd 鍐呴儴浼氬垽瀹 Miss + hasReleased = true; + releaseTime = Time.time; + JudgeManager.Instance?.RegisterNoteReleased(noteID, true); + Debug.Log($"[HoldNote] RegisterNoteReleased on KeyUp. NoteID: {noteID}, releaseTime={releaseTime:F2}"); } } - // 濡傛灉鎸夐敭琚寜涓嬶紝涓擲tart娈靛凡缁忓垽瀹氭垚鍔燂紝鍒欐縺娲婚暱鎸夌姸鎬 - // 鑰冭檻鍒扮帺瀹跺彲鑳藉湪Start娈甸氳繃鍚庣灛闂存澗鎵嬪啀鎸変笅锛岃繖閲岄渶瑕佺‘淇濆彧瑕丼tart娈靛垽瀹氭垚鍔熶笖鎸夐敭鎸変綇锛宨sHoldActive灏变负true + if (JudgeManager.Instance.IsStartJudged(noteID) && Input.GetKey(keyToPress)) { isHoldActive = true; } - // Start娈靛垽瀹 if (segment == NoteSegment.Start && hasEnteredLine) { - // 鍦ㄥ垽瀹氱獥鍙e唴鎸変笅鎸夐敭鎵嶈Е鍙戝垽瀹 if (Input.GetKeyDown(keyToPress)) { HandleStart(); isJudged = true; // 鏃犺鎴愬姛澶辫触閮芥爣璁颁负宸插垽瀹氾紝閬垮厤閲嶅灏濊瘯 } - // 濡傛灉Start娈佃繘鍏ュ垽瀹氬尯浣嗙帺瀹舵湭鎸夐敭锛屼笖宸茬粡閿欒繃鏈浣冲垽瀹氭椂鏈猴紝鍙互鑰冭檻Miss骞跺洖鏀 - // 杩欓儴鍒嗛昏緫鐜板湪鏀惧湪 OnTriggerExit2D 閲屽鐞嗘洿鍚堥 } - // Middle娈靛垽瀹氾細 - // 鍙湁褰撳ご閮ㄥ凡鍒ゅ畾銆佷笖闀挎寜鏈夋晥锛堟寜閿寔缁寜浣忥級锛屽苟涓斿凡缁忓埌杈捐Middle娈电殑鍛戒腑鏃堕棿鐐规椂锛屾墠璁や负璇iddle娈甸氳繃銆 - // Middle娈垫湰韬病鏈夌嫭绔嬬殑鎸夐敭杈撳叆鍒ゅ畾锛屽畠鍙槸闀挎寜鐨勫欢缁 + // Middle娈靛垽瀹氾細涓鍙礋璐h瑙/鍥炴敹锛屼笉鍋 End 鍒ゅ畾缁熻 else if (segment == NoteSegment.Middle - && JudgeManager.Instance.IsStartJudged(noteID) // 澶撮儴蹇呴』宸插垽瀹 - && isHoldActive // 蹇呴』澶勪簬闀挎寜鏈夋晥鐘舵侊紙鎸夐敭鎸佺画鎸変綇锛 - && !JudgeManager.Instance.HasNoteReleased(noteID)) // 纭繚End娈佃繕鏈鍒ゅ畾閲婃斁 + && JudgeManager.Instance.IsStartJudged(noteID) + && isHoldActive + && !JudgeManager.Instance.HasNoteReleased(noteID)) { - // Debug.Log($"[HoldNote] Middle娈电姸鎬佹鏌: Time.time={Time.time:F2}, hitTime={hitTime:F2}, hasEnteredLine={hasEnteredLine}"); if (Time.time >= hitTime) { - // 纭繚瀹冭繘鍏ヤ簡鍒ゅ畾绾匡紝浣嗗湪Update涓紝鍗充娇娌″畬鍏ㄨ繘鍏ワ紝鍙鏃堕棿鍒颁簡涓旀潯浠舵弧瓒筹紝涔熺畻閫氳繃 - // 浣嗘槸锛屾垜浠富瑕佸笇鏈涘畠鍦ㄩ氳繃鍒ゅ畾绾垮悗琚洖鏀 - // 鍥犳锛孧iddle娈电殑鍥炴敹閫昏緫鏇村渚濊禆浜嶥elayedAutoReturnCheck鎴朞nTriggerExit2D - if (hasEnteredLine) // 纭繚宸茬粡杩涘叆杩囧垽瀹氱嚎锛岄槻姝㈤煶绗︽彁鍓嶆秷澶 + if (hasEnteredLine) { Debug.Log($"[HoldNote] Middle娈甸氳繃 (鎸佺画闀挎寜): {noteColor}"); PlayHitAnimation(); + // 鎶婇氳繃浜嬩欢涓婃姤缁 JudgeManager锛堣褰曚腑娈甸氳繃锛 + JudgeManager.Instance?.RegisterMiddlePassed(noteID); ReturnToPool(); isJudged = true; } } } - // End娈靛垽瀹 + // End娈靛垽瀹氾細鐜板湪 End 娈靛垽瀹氱敱鐙珛鐨勫熬閮ㄩ煶绗﹁礋璐o紙鍗虫湰瀵硅薄浠嶅彲鍒ゅ畾锛屼絾鏇撮噸瑕佺殑鏄熬閮╪ote浼氬喅瀹氭渶缁堝垽瀹氾級 else if (segment == NoteSegment.End - && JudgeManager.Instance.IsStartJudged(noteID) // 澶撮儴蹇呴』宸插垽瀹 - && !JudgeManager.Instance.HasNoteReleased(noteID)) // 纭繚杩樻湭琚垽瀹氶噴鏀 + && JudgeManager.Instance.IsStartJudged(noteID) + && !JudgeManager.Instance.HasNoteReleased(noteID)) { - // 鍙湁褰撶帺瀹舵澗寮鎸夐敭鏃舵墠瑙﹀彂End娈靛垽瀹 if (Input.GetKeyUp(keyToPress)) { HandleEnd(); - isJudged = true; // 鏍囪涓哄凡鍒ゅ畾 - } - // 濡傛灉 End 娈靛凡缁忚揪鍒版垨瓒呰繃浜嗛瀹氱殑閲婃斁鏃堕棿 (scheduledEndTime)锛 - // 浣嗙帺瀹朵粛鏈澗鎵嬶紝涓旈暱鎸夌姸鎬佷粛鐒舵湁鏁堬紝杩欏彲鑳芥槸鐜╁鎸夊緱杩囬暱 - // 杩欑鎯呭喌搴旇缁欎簣涓涓樊鐨勫垽瀹氭垨鑰匨iss - else if (Time.time >= scheduledEndTime + 0.1f && isHoldActive) // 缁欎簣涓鐐瑰閿欐椂闂 - { - Debug.Log($"[HoldNote] End娈佃秴鏃舵湭鏉炬墜锛屽垽瀹氫负Miss: {noteColor}"); - HandleEnd(true); // 浼犲叆true琛ㄧず寮哄埗Miss isJudged = true; } } @@ -219,28 +221,31 @@ public class HoldNote : BaseNote { if (!collision.CompareTag("JudgmentLine")) return; - hasEnteredLine = true; // 鍙杩涘叆鍒ゅ畾绾匡紝灏辨爣璁 + hasEnteredLine = true; if (segment == NoteSegment.Middle) { - // 杩涘叆鍒ゅ畾鍖烘椂璁板綍鏄惁宸叉寜浣 hasBeenHeldFromStart = Input.GetKey(keyToPress); Debug.Log($"[HoldNote] Middle娈佃繘鍏ュ垽瀹氱嚎: color={noteColor}, isStartJudged={JudgeManager.Instance.IsStartJudged(noteID)}, hasReleased={JudgeManager.Instance.HasNoteReleased(noteID)}, isKeyHeld={Input.GetKey(keyToPress)}, hasBeenHeldFromStart={hasBeenHeldFromStart}"); if (autoReturnCoroutine != null) StopCoroutine(autoReturnCoroutine); - - // Middle娈电殑寤惰繜鍥炴敹涓昏纭繚鍗充娇鎸変綇涔熻兘鍦ㄩ傚綋鏃堕棿鍥炴敹 - // 閲嶆柊鎬濊冭繖閲岀殑蹇呰鎬э紝鍙兘璁︰pdate鍜孫nTriggerExit2D澶勭悊鏇寸洿鎺 - // 鏆傛椂绉婚櫎杩欓噷鐨 DelayedAutoReturnCheck锛岃 Update 鍜 OnTriggerExit2D 涓诲 Middle 娈电殑鐢熷懡鍛ㄦ湡 - // autoReturnCoroutine = StartCoroutine(DelayedAutoReturnCheck()); } else if (segment == NoteSegment.End) { if (autoReturnCoroutine != null) StopCoroutine(autoReturnCoroutine); - // End娈电殑寤惰繜鍥炴敹涓昏鐢ㄤ簬澶勭悊鐜╁鏄惁鏉炬墜锛屼互鍙婅秴鏃跺洖鏀 + // 濡傛灉鍦ㄥ熬閮ㄨ繘鍏ュ垽瀹氬尯鏃剁帺瀹跺凡缁忛噴鏀炬寜閿紝鍒欐鏃跺簲绔嬪嵆鍋 End 鍒ゅ畾 + if (JudgeManager.Instance.HasNoteReleased(noteID) && !isJudged) + { + Debug.Log($"[HoldNote] End娈佃繘鍏ュ垽瀹氱嚎浣嗗凡缁忛噴鏀撅紝绔嬪嵆鎵ц End 鍒ゅ畾: {noteColor}"); + HandleEnd(); + isJudged = true; + // ReturnToPool handled inside HandleEnd + return; + } + autoReturnCoroutine = StartCoroutine(DelayedAutoReturnCheck()); } } @@ -249,44 +254,60 @@ public class HoldNote : BaseNote { if (!collision.CompareTag("JudgmentLine")) return; - // Start娈电寮鍒ゅ畾绾挎椂濡傛灉鏈鍒ゅ畾锛屽垯瑙嗕负Miss骞跺洖鏀 if (segment == NoteSegment.Start) { if (!JudgeManager.Instance.IsStartJudged(noteID)) { - Debug.Log($"[HoldNote] Start娈电寮鍒ゅ畾绾挎湭鍒ゅ畾锛屽己鍒跺洖鏀 (Miss): {noteColor}"); - // 鍙互瑙﹀彂涓涓狹iss鍒ゅ畾 - // JudgeManager.Instance.RecordMiss(noteID); + Debug.Log($"[HoldNote] Start娈电寮鍒ゅ畾绾挎湭鍒ゅ畾锛岃ˉ鍋 Miss 骞跺洖鏀: {noteColor}"); + // 纭繚鏈垽瀹氱殑 Start 娈靛湪绂诲紑鍒ゅ畾绾挎椂鐧昏涓 Miss + HandleStart(); + isJudged = true; ReturnToPool(); } - // 濡傛灉Start娈靛凡鍒ゅ畾锛岄偅涔堝畠浼氶氳繃DelayedReturn琚洖鏀讹紝杩欓噷涓嶅仛棰濆澶勭悊 } - // Middle娈电寮鍒ゅ畾绾挎椂锛屽鏋滃ご閮ㄦ湭鍒ゅ畾锛屾垨鑰呴暱鎸夊凡缁忓け鏁堬紙鏉炬墜锛夛紝鍒欏洖鏀 - else if (segment == NoteSegment.Middle) // 杩欓噷淇浜嗘嫾鍐欓敊璇 + else if (segment == NoteSegment.Middle) { - // 鏃犺Start娈垫槸鍚﹀垽瀹氾紝濡傛灉Middle娈电寮浜嗗垽瀹氱嚎锛屽氨搴旇鍥炴敹 - // 鍥犱负瀹冨凡缁忓畬鎴愪簡瀹冪殑鈥滈氳繃鈥濇垨鑰呪滈敊杩団濈殑鑱岃矗 Debug.Log($"[HoldNote] Middle娈电寮鍒ゅ畾绾垮己鍒跺洖鏀: {noteColor}"); ReturnToPool(); } - // End娈电寮鍒ゅ畾绾挎椂锛屽鏋滃ご閮ㄦ湭鍒ゅ畾锛屾垨鑰呴暱鎸夊凡缁忓け鏁堬紝鎴栬 End 娈靛凡缁忓畬鎴愬垽瀹氾紝鍒欏洖鏀 else if (segment == NoteSegment.End) { - if (!isJudged) // 濡傛灉End娈佃繕娌℃湁琚垽瀹 + if (autoReturnCoroutine != null) { - // 濡傛灉澶撮儴娌″垽锛屾垨鑰呴暱鎸変腑鏂紝鎴栬呯帺瀹舵寜寰楄繃涔咃紙宸茬粡杩囦簡scheduledEndTime寰堝浜嗭級 - if (!JudgeManager.Instance.IsStartJudged(noteID) || !isHoldActive || Time.time > scheduledEndTime + 0.15f) + StopCoroutine(autoReturnCoroutine); + autoReturnCoroutine = null; + } + + // 鍦ㄥ熬閮ㄧ寮鍒ゅ畾绾挎椂锛屾寜濡備笅瑙勫垯澶勭悊锛 + // - 濡傛灉澶撮儴鏈垽瀹氾細琛ュ伩 Miss 骞跺洖鏀 + // - 濡傛灉澶撮儴宸插垽瀹氫笖鐜╁宸茬粡閲婃斁锛氭墽琛 End 鍒ゅ畾骞跺洖鏀 + // - 濡傛灉澶撮儴宸插垽瀹氫笖鐜╁浠嶅湪鎸変綇锛氫笉瑕佸己鍒 Miss锛屼篃涓嶈绔嬪嵆鍥炴敹锛岀瓑寰呯帺瀹舵澗鎵嬫垨瓒呮椂澶勭悊 + if (!isJudged) + { + if (!JudgeManager.Instance.IsStartJudged(noteID)) { - Debug.Log($"[HoldNote] End娈电寮鍒ゅ畾绾垮己鍒跺洖鏀 (澶撮儴鏈垽瀹氭垨闀挎寜涓柇鎴栬秴鏃): {noteColor}"); - // 鍙互鍦ㄨ繖閲屽己鍒朵竴涓狹iss鍒ゅ畾锛屽鏋滀箣鍓嶆病瑙﹀彂杩 - if (!JudgeManager.Instance.HasNoteReleased(noteID)) // 纭繚娌℃湁閲嶅鍒ゅ畾 - { - HandleEnd(true); // 浼犲叆true琛ㄧず寮哄埗Miss - } + Debug.Log($"[HoldNote] End娈电寮鍒ゅ畾绾夸笖澶撮儴鏈垽瀹氾紝琛ュ伩 Miss: {noteColor}"); + if (!JudgeManager.Instance.HasNoteReleased(noteID)) + HandleEnd(true); ReturnToPool(); } + else + { + if (JudgeManager.Instance.HasNoteReleased(noteID)) + { + Debug.Log($"[HoldNote] End娈电寮鍒ゅ畾绾夸笖宸查噴鏀撅紝鎵ц End 鍒ゅ畾: {noteColor}"); + HandleEnd(); + isJudged = true; + ReturnToPool(); + } + else + { + // 澶撮儴宸插垽瀹氫笖鐜╁浠嶅湪鎸変綇锛氫繚鎸佹樉绀猴紝涓嶄綔鍥炴敹鎴栧垽瀹 + Debug.Log($"[HoldNote] End娈电寮鍒ゅ畾绾匡紝澶撮儴宸插垽瀹氫笖浠嶅湪鎸変綇锛屼繚鎸佹樉绀虹瓑寰呮澗鎵嬫垨瓒呮椂: {noteColor}"); + } + } } - else // 濡傛灉End娈靛凡缁忚鍒ゅ畾杩囦簡锛岀洿鎺ュ洖鏀 + else { ReturnToPool(); } @@ -295,33 +316,19 @@ public class HoldNote : BaseNote private IEnumerator DelayedAutoReturnCheck() { - // 杩欓噷鐨 DelayedAutoReturnCheck 涓昏鏄拡瀵 End 娈电殑瓒呮椂鏈澗鎵嬫鏌 - // 鎴栬 Start 娈电殑寤惰繜琛ュ垽锛堣繖閮ㄥ垎宸茬粡绉诲埌 Update 鍜 HandleStart锛 yield return null; if (segment == NoteSegment.End) { - // 鍦ㄨ繖閲岀瓑寰咃紝鐪嬬帺瀹舵槸鍚﹀湪 scheduledEndTime 涔嬪墠鏉炬墜 - // 濡傛灉鍒拌揪 scheduledEndTime 鐜╁浠嶆湭鏉炬墜锛屼笖闀挎寜鏈夋晥锛屽垯缁х画绛夊緟 - // 濡傛灉鐜╁鎸夊緱杩囬暱锛屽彲浠ュ湪 Update 涓Е鍙 Miss 鍒ゅ畾 float timeToWait = Mathf.Max(0f, scheduledEndTime - Time.time); if (timeToWait > 0f) { yield return new WaitForSeconds(timeToWait); } - // 鍒拌揪 scheduledEndTime 鍚庡啀娆℃鏌 - // 濡傛灉姝ゆ椂鐜╁浠嶅湪鎸変綇锛屽苟涓 Start 娈靛凡鍒ゅ畾锛屼絾 End 娈佃繕娌¤鍒ゅ畾閲婃斁 - // 璇存槑鐜╁鎸夊緱澶箙锛屽垽瀹氫负 Miss - if (!isJudged && JudgeManager.Instance.IsStartJudged(noteID) && Input.GetKey(keyToPress)) - { - Debug.Log($"[HoldNote] DelayedAutoReturnCheck (End娈) 鍒ゅ畾锛氱帺瀹舵寜寰楄繃闀匡紝Miss! {noteColor}"); - HandleEnd(true); // 寮哄埗 Miss - } - // 鏃犺濡備綍锛屽鏋 End 娈靛凡缁忚繃鍘讳簡锛屼絾杩樻病鍥炴敹锛屽氨鍥炴敹 if (!gameObject.activeSelf) { - yield break; // 淇锛佷娇鐢 yield break 鏉ョ粨鏉熷崗绋 + yield break; } ReturnToPool(); } @@ -348,14 +355,13 @@ public class HoldNote : BaseNote isHoldActive = false; // Start Miss锛岄暱鎸夌姸鎬佷笉婵娲 } InputManager.Instance?.ShowJudgeResult(trackIndex, result); - // Start娈靛垽瀹氬悗绔嬪嵆鍥炴敹锛屽洜涓哄畠鐨勮瑙夐儴鍒嗗彲鑳藉彧闇瑕佺煭鏆傛樉绀 StartCoroutine(DelayedReturn()); } private IEnumerator DelayedReturn() { - yield return new WaitForSeconds(0.05f); // 鐭殏寤惰繜锛岀‘淇濊瑙夋晥鏋滄垨鏁版嵁鏇存柊 - if (gameObject.activeSelf) // 纭繚瀵硅薄杩樻椿璺冿紝闃叉閲嶅鍥炴敹 + yield return new WaitForSeconds(0.05f); + if (gameObject.activeSelf) { ReturnToPool(); } @@ -363,11 +369,28 @@ public class HoldNote : BaseNote private void HandleEnd(bool forceMiss = false) { + // 璁板綍閲婃斁鏃堕棿骞跺湪 JudgeManager 涓櫥璁板凡閲婃斁鐘舵 + if (!hasReleased) + { + releaseTime = Time.time; + hasReleased = true; + JudgeManager.Instance?.RegisterNoteReleased(noteID, true); + } + + string result; + + // 濡傛灉鐜╁鍦ㄥ熬閮ㄨ繘鍏ュ垽瀹氬尯鍓嶅氨鏉炬墜锛屽垯浠呯櫥璁伴噴鏀撅紝涓嶅湪姝ゅ杩涜鏈缁堝垽瀹氬拰鍥炴敹锛岄櫎闈炴槸寮哄埗 Miss + if (!hasEnteredLine && !forceMiss) + { + Debug.Log($"[HoldNote] HandleEnd: 鎻愬墠鏉炬墜锛岃褰曢噴鏀句絾绛夊緟灏鹃儴杩涘叆鍒ゅ畾鍖哄啀鍒ゅ畾. NoteID={noteID}, color={noteColor}"); + return; + } + + // 鐜板湪杩涜姝e父鍒ゅ畾閫昏緫 releaseTime = Time.time; hasReleased = true; JudgeManager.Instance.RegisterNoteReleased(noteID, true); - string result; - // 鍙澶撮儴鍒ゅ畾閫氳繃锛屾澗鎵嬫椂鏈哄湪鍒ゅ畾鍖洪棿鍐呭氨缁欏嚭瀵瑰簲鍒ゅ畾 + if (forceMiss || !JudgeManager.Instance.IsStartJudged(noteID)) { result = "Miss"; @@ -418,6 +441,7 @@ public class HoldNote : BaseNote } } InputManager.Instance?.ShowJudgeResult(trackIndex, result); + teamUIController.Instance?.OnJudgeResult(result); // 鏂板锛氭洿鏂癱ombo璁℃暟 Debug.Log($"[HoldNote] END鍒ゅ畾缁撴灉: {noteColor} {result} (release={releaseTime:F2}, target={scheduledEndTime:F2})"); ReturnToPool(); } @@ -430,27 +454,21 @@ public class HoldNote : BaseNote autoReturnCoroutine = null; } - // OnDisable鏃跺End娈电殑琛ュ伩澶勭悊锛 - // 濡傛灉鏄疎nd娈碉紝涓斿皻鏈鍒ゅ畾锛屼笖Start娈靛凡鍒ゅ畾锛屼絾姝ゆ椂鎸夐敭宸茬粡鏉惧紑 (閫氳繃 !Input.GetKey(keyToPress) 鍒ゆ柇) - // 杩欐剰鍛崇潃鐜╁鍦ㄧ寮鍒ゅ畾鍖烘垨鍥犲叾浠栧師鍥犲鑷 OnDisable 鏃舵澗鎵嬶紝浣嗘湭瑙﹀彂姝e父鐨 HandleEnd if (segment == NoteSegment.End && !isJudged && // 灏氭湭鍒ゅ畾 JudgeManager.Instance.IsStartJudged(noteID)) // 澶撮儴宸插垽瀹 { - // 濡傛灉鎸夐敭宸茬粡鏉惧紑锛屾垨鑰呴暱鎸夌姸鎬佸凡缁忓け鏁 (鍙兘鍥犱负鏉惧紑杩囧揩) - if (!Input.GetKey(keyToPress) || !isHoldActive) + // 鍙湪澶撮儴宸插垽瀹氫笖鐜╁宸叉澗鎵嬫椂琛ュ伩 End 鍒ゅ畾涓 Miss锛涘惁鍒欎笉瑕佸己鍒 Miss + if (JudgeManager.Instance.HasNoteReleased(noteID) && !isHoldActive) { - Debug.Log($"[HoldNote] OnDisable琛ュ伩End娈礛iss鍒ゅ畾: {noteColor}"); - HandleEnd(true); // 寮哄埗Miss - isJudged = true; // 鏍囪宸插垽瀹 - } - else if (Input.GetKey(keyToPress)) - { - // 濡傛灉End娈电寮浜嗗垽瀹氬尯锛屼絾鏄帺瀹惰繕鍦ㄦ寜浣忥紝杩欏睘浜庢寜寰楄繃闀 - Debug.Log($"[HoldNote] OnDisable锛欵nd娈靛湪绂诲紑鍒ゅ畾鍖烘椂鐜╁浠嶆湭鏉炬墜锛屽垽瀹氫负Miss: {noteColor}"); - HandleEnd(true); // 寮哄埗Miss + Debug.Log($"[HoldNote] OnDisable琛ュ伩End娈靛垽瀹氾紙宸查噴鏀撅級: {noteColor}"); + HandleEnd(); // 姝e父鍒ゅ畾锛堝熀浜 releaseTime锛 isJudged = true; } + else + { + Debug.Log($"[HoldNote] OnDisable锛欵nd娈垫湭鍒ゅ畾涓斿皻鏈夋寜閿姸鎬侊紝璺宠繃寮哄埗 Miss: {noteColor}"); + } } controller?.StopMovement(); @@ -470,6 +488,8 @@ public class HoldNote : BaseNote if (segment == NoteSegment.Start) NotePool.Instance.ReturnStartNote(gameObject, noteColor); + else if (segment == NoteSegment.End) + NotePool.Instance.ReturnHoldNoteEndSegment(gameObject, noteColor); else NotePool.Instance.ReturnHoldNoteSegment(gameObject, noteColor); } @@ -487,7 +507,6 @@ public class HoldNote : BaseNote isJudged = false; isHoldActive = false; // 閲嶇疆闀挎寜鏍囪 hasBeenHeldFromStart = false; // 閲嶇疆 - // canJudgeThisSegment = false; // 姝ゅ彉閲忓凡琚Щ闄ゆ垨涓嶅啀鍏抽敭 if (autoReturnCoroutine != null) { diff --git a/Assets/scripts/gamePlay_gameplay/InputManager.cs b/Assets/scripts/gamePlay_gameplay/InputManager.cs index 0eda31f1..6fc3e70e 100644 --- a/Assets/scripts/gamePlay_gameplay/InputManager.cs +++ b/Assets/scripts/gamePlay_gameplay/InputManager.cs @@ -11,10 +11,21 @@ public class InputManager : MonoBehaviour [Header("轨道判定显示TMP对象(请在Inspector中连接)")] public TextMeshProUGUI[] trackJudgeTexts = new TextMeshProUGUI[5]; + [Header("按键指示文本(独立于判定文本,五个分别对应按键:D,F,Space,J,K)")] + public TextMeshProUGUI[] trackKeyTexts = new TextMeshProUGUI[5]; + [Header("是否显示判定文字")] public bool showJudgeText = true; + // 按键激活/非激活颜色 + [Header("按键高亮颜色设置")] + [Tooltip("按键被按下时的颜色")] + public Color keyActiveColor = Color.yellow; + [Tooltip("按键未按下时的颜色(默认黑色)")] + public Color keyInactiveColor = Color.black; + // 判定结果对应颜色 + [Header("判定结果对应颜色")] public Color perfectColor = Color.yellow; public Color greatColor = Color.green; public Color goodColor = Color.cyan; @@ -26,6 +37,15 @@ public class InputManager : MonoBehaviour Instance = this; else Destroy(gameObject); + + // 初始化按键文本为非激活颜色 + if (trackKeyTexts != null) + { + foreach (var t in trackKeyTexts) + { + if (t != null) t.color = keyInactiveColor; + } + } } private void Update() @@ -35,14 +55,48 @@ public class InputManager : MonoBehaviour KeyCode key = KeyBindingManager.GetKeyForColor(color); if (key == KeyCode.None) continue; + int index = GetIndexForColor(color); + if (Input.GetKeyDown(key)) { OnKeyPressed?.Invoke(key); // 调用 JudgeManager 统一判断最早的音符 JudgeManager.Instance.JudgeEarliestNote(key); + + // 按下时设置对应的按键文本颜色为激活色(如果已设置) + if (trackKeyTexts != null && index >= 0 && index < trackKeyTexts.Length) + { + var txt = trackKeyTexts[index]; + if (txt != null) + txt.color = keyActiveColor; + } } if (Input.GetKeyUp(key)) + { OnKeyReleased?.Invoke(key); + + // 松开时恢复为非激活颜色 + if (trackKeyTexts != null && index >= 0 && index < trackKeyTexts.Length) + { + var txt = trackKeyTexts[index]; + if (txt != null) + txt.color = keyInactiveColor; + } + } + } + } + + private int GetIndexForColor(string color) + { + // 保持与 trackJudgeTexts 相同的索引映射 + switch (color) + { + case "red": return 0; + case "green": return 1; + case "yellow": return 2; + case "purple": return 3; + case "blue": return 4; + default: return -1; } } diff --git a/Assets/scripts/gamePlay_gameplay/JudgeManager.cs b/Assets/scripts/gamePlay_gameplay/JudgeManager.cs index f02fe693..3b390402 100644 --- a/Assets/scripts/gamePlay_gameplay/JudgeManager.cs +++ b/Assets/scripts/gamePlay_gameplay/JudgeManager.cs @@ -11,6 +11,9 @@ public class JudgeManager : MonoBehaviour // 记录 End 段的 scheduledEndTime(防止 End 被回收后仍然能判定) private Dictionary noteEndTimes = new Dictionary(); + // 记录每条长音符中段通过的计数 + private Dictionary middlePassedCounts = new Dictionary(); + private void Awake() { @@ -28,17 +31,17 @@ public class JudgeManager : MonoBehaviour /// /// 记录某个颜色的长音符 End 段的 scheduledEndTime /// - public void RegisterScheduledEndTime(string noteColor, float endTime) + public void RegisterScheduledEndTime(string noteID, float endTime) { - noteEndTimes[noteColor] = endTime; + noteEndTimes[noteID] = endTime; } /// /// 获取某个颜色的 End 段的 scheduledEndTime /// - public float GetScheduledEndTime(string noteColor) + public float GetScheduledEndTime(string noteID) { - return noteEndTimes.ContainsKey(noteColor) ? noteEndTimes[noteColor] : 0f; + return noteEndTimes.ContainsKey(noteID) ? noteEndTimes[noteID] : 0f; } public void RegisterStartJudged(string noteID, bool state) @@ -117,4 +120,28 @@ public class JudgeManager : MonoBehaviour } } } + + /// + /// 记录中段通过,用于调试或进一步判定策略 + /// + public void RegisterMiddlePassed(string noteID) + { + if (!middlePassedCounts.ContainsKey(noteID)) + middlePassedCounts[noteID] = 0; + middlePassedCounts[noteID]++; + Debug.Log($"[JudgeManager] Middle passed for {noteID}, total={middlePassedCounts[noteID]}"); + } + + public int GetMiddlePassedCount(string noteID) + { + return middlePassedCounts.ContainsKey(noteID) ? middlePassedCounts[noteID] : 0; + } + + public void ClearNoteRecord(string noteID) + { + if (startJudgedNotes.ContainsKey(noteID)) startJudgedNotes.Remove(noteID); + if (releasedNotes.ContainsKey(noteID)) releasedNotes.Remove(noteID); + if (noteEndTimes.ContainsKey(noteID)) noteEndTimes.Remove(noteID); + if (middlePassedCounts.ContainsKey(noteID)) middlePassedCounts.Remove(noteID); + } } \ No newline at end of file diff --git a/Assets/scripts/gamePlay_gameplay/NewBehaviourScript.cs b/Assets/scripts/gamePlay_gameplay/NewBehaviourScript.cs index f50b3f87..bcad2a7a 100644 --- a/Assets/scripts/gamePlay_gameplay/NewBehaviourScript.cs +++ b/Assets/scripts/gamePlay_gameplay/NewBehaviourScript.cs @@ -9,8 +9,8 @@ public class Notes : MonoBehaviour private void Update() { - // 过了 Miss 判定时间,销毁音符 - if (!isHit && Time.timeSinceLevelLoad > hitTime + 0.3f) + // 只有进入判定区后,才允许自动miss + if (canBeJudged && !isHit && Time.timeSinceLevelLoad > hitTime + 0.3f) { JudgeMiss(); } @@ -57,31 +57,44 @@ public class Notes : MonoBehaviour } } + private void Recycle() + { + // 如果存在 NotePool,优先归还池,否则销毁物体 + if (NotePool.Instance != null) + { + NotePool.Instance.ReturnNote(gameObject, "red"); // color 未保存时默认 red,建议上层调用时传入 + } + else + { + Destroy(gameObject); + } + } + private void JudgePerfect() { Debug.Log($"Track {trackIndex}: Perfect!"); isHit = true; - Destroy(gameObject); + Recycle(); } private void JudgeGreat() { Debug.Log($"Track {trackIndex}: Great!"); isHit = true; - Destroy(gameObject); + Recycle(); } private void JudgeGood() { Debug.Log($"Track {trackIndex}: Good!"); isHit = true; - Destroy(gameObject); + Recycle(); } private void JudgeMiss() { Debug.Log($"Track {trackIndex}: Miss!"); isHit = true; - Destroy(gameObject); + Recycle(); } } diff --git a/Assets/scripts/gamePlay_gameplay/Note.cs b/Assets/scripts/gamePlay_gameplay/Note.cs index 49dade55..f93ebd82 100644 --- a/Assets/scripts/gamePlay_gameplay/Note.cs +++ b/Assets/scripts/gamePlay_gameplay/Note.cs @@ -116,6 +116,7 @@ public class Note : BaseNote if (!string.IsNullOrEmpty(judgeResult)) { InputManager.Instance?.ShowJudgeResult(TrackIndex, judgeResult); + teamUIController.Instance?.OnJudgeResult(judgeResult); // 新增:更新combo计数 } Judge(); } @@ -149,7 +150,10 @@ public class Note : BaseNote if (isJudged) return; isJudged = true; Debug.Log($"{keyToPress} Miss"); - // InputManager.Instance?.ShowJudgeResult(TrackIndex, "Miss"); // 已在HandlePress中调用 + // Ensure UI shows Miss and combo is updated when a note auto-misses + InputManager.Instance?.ShowJudgeResult(TrackIndex, "Miss"); + teamUIController.Instance?.OnJudgeResult("Miss"); + // InputManager.Instance?.ShowJudgeResult(TrackIndex, "Miss"); // 已在HandlePress中调用 for manual presses ReturnToPool(); } @@ -182,6 +186,9 @@ public class Note : BaseNote // 离开判定区且未判定则判 Miss if (!inZone && !isJudged) { + // Show Miss and update combo + InputManager.Instance?.ShowJudgeResult(TrackIndex, "Miss"); + teamUIController.Instance?.OnJudgeResult("Miss"); JudgeMiss(); } } diff --git a/Assets/scripts/gamePlay_gameplay/NotePool.cs b/Assets/scripts/gamePlay_gameplay/NotePool.cs index 28bc643f..82ae309e 100644 --- a/Assets/scripts/gamePlay_gameplay/NotePool.cs +++ b/Assets/scripts/gamePlay_gameplay/NotePool.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using UnityEngine; +using GamePlay; // for PoolItem public class NotePool : MonoBehaviour { @@ -7,14 +8,27 @@ public class NotePool : MonoBehaviour public GameObject[] notePrefabs; // 短音符预制体(按颜色存储) public GameObject[] holdNotePrefabs; // 长音符片段预制体 + public GameObject[] holdNoteEndPrefabs; // 新增:尾部专用长音符预制体(可选) public GameObject[] startNotePrefabs; // 长音符start片段预制体 private int poolSize = 12; // 每种类型的音符池大小 private int maxPoolSize = 60; // 池的最大容量 + // 颜色到索引的快速映射,避免每次 switch + private Dictionary colorIndexMap; + private Dictionary> notePools; // 短音符对象池 private Dictionary> holdNotePools; // 长音符片段对象池 + private Dictionary> holdNoteEndPools; // 新增:尾部长音符对象池 private Dictionary> startNotePools; // 长音符start片段对象池 + // 容器物体用于在层级中组织池中的对象,便于调试和管理 + private Transform notePoolContainer; + private Transform holdPoolContainer; + private Transform startPoolContainer; + + // 控制调试输出,默认关闭以提升性能 + public bool verboseLogging = false; + private void Awake() { if (Instance == null) @@ -27,79 +41,152 @@ public class NotePool : MonoBehaviour return; } + // 初始化颜色映射 + colorIndexMap = new Dictionary + { + { "red", 0 }, + { "green", 1 }, + { "yellow", 2 }, + { "purple", 3 }, + { "blue", 4 } + }; + + // 创建容器 + notePoolContainer = new GameObject("_NotePool_Notes").transform; + notePoolContainer.SetParent(transform, false); + holdPoolContainer = new GameObject("_NotePool_HoldSegments").transform; + holdPoolContainer.SetParent(transform, false); + startPoolContainer = new GameObject("_NotePool_StartSegments").transform; + startPoolContainer.SetParent(transform, false); + notePools = new Dictionary>(); holdNotePools = new Dictionary>(); + holdNoteEndPools = new Dictionary>(); startNotePools = new Dictionary>(); - for (int i = 0; i < notePrefabs.Length; i++) + int colorCount = Mathf.Max(1, notePrefabs != null ? notePrefabs.Length : 0); + + for (int i = 0; i < colorCount; i++) { notePools[i] = new Stack(); holdNotePools[i] = new Stack(); + holdNoteEndPools[i] = new Stack(); startNotePools[i] = new Stack(); for (int j = 0; j < poolSize; j++) { - AddToPool(notePools[i], notePrefabs[i]); - AddToPool(startNotePools[i], startNotePrefabs[i]); + AddToPool(notePools[i], notePrefabs[i], notePoolContainer); + AddToPool(startNotePools[i], startNotePrefabs[i], startPoolContainer); } for (int j = 0; j < poolSize * 5; j++) { - AddToPool(holdNotePools[i], holdNotePrefabs[i]); + AddToPool(holdNotePools[i], holdNotePrefabs[i], holdPoolContainer); + // 如果专用尾部预制体存在则初始化尾部池,否则使用中段预制体 + if (holdNoteEndPrefabs != null && holdNoteEndPrefabs.Length > i && holdNoteEndPrefabs[i] != null) + AddToPool(holdNoteEndPools[i], holdNoteEndPrefabs[i], holdPoolContainer); + else + AddToPool(holdNoteEndPools[i], holdNotePrefabs[i], holdPoolContainer); } } } - private GameObject GetObjectFromPool(Stack pool, GameObject prefab) + private GameObject GetObjectFromPool(Stack pool, GameObject prefab, Transform container) { + if (pool == null) + return InstantiateAndPrepare(prefab); + if (pool.Count > 0) { GameObject obj = pool.Pop(); + if (obj == null) + { + // 如果池中对象已被销毁,创建新对象 + obj = InstantiateAndPrepare(prefab); + } + else + { + // 优化:使用 PoolItem 标识来检查是否来自同一 prefab + GamePlay.PoolItem pi = obj.GetComponent(); + if (pi == null || prefab == null || pi.prefabName != prefab.name) + { + // 销毁错误类型的对象并替换为正确的 prefab 实例 + if (pi == null && verboseLogging) Debug.LogWarning("PoolItem missing on pooled object, replacing."); + Destroy(obj); + obj = InstantiateAndPrepare(prefab); + } + } + obj.transform.SetParent(null); obj.SetActive(true); + + // mark as taken from pool + GamePlay.PoolItem takenPi = obj.GetComponent(); + if (takenPi != null) takenPi.inPool = false; + return obj; } else { - if (pool.Count < maxPoolSize) - { - GameObject obj = Instantiate(prefab); - obj.SetActive(true); - return obj; - } - else - { - Debug.LogWarning("对象池已满,生成新的音符!"); - GameObject obj = Instantiate(prefab); - obj.SetActive(true); - return obj; - } + // 池空时直接实例化新对象 + GameObject obj = InstantiateAndPrepare(prefab); + obj.SetActive(true); + return obj; } } - private void ReturnObjectToPool(Stack pool, GameObject obj) + private GameObject InstantiateAndPrepare(GameObject prefab) { - if (obj == null || pool.Contains(obj)) return; // 防止重复回收 - - if (obj != null) - { - obj.SetActive(false); // 设置为非活动状态 - if (pool.Count < maxPoolSize) - { - pool.Push(obj); - Debug.Log($"已归还对象:{obj.name},当前池容量:{pool.Count}"); - } - else - { - Debug.LogWarning("对象池已满,无法继续归还对象!"); - } - } + if (prefab == null) return null; + GameObject obj = Instantiate(prefab); + GamePlay.PoolItem pi = obj.GetComponent(); + if (pi == null) pi = obj.AddComponent(); + pi.prefabName = prefab.name; + pi.inPool = false; + return obj; } - private void AddToPool(Stack pool, GameObject prefab) + private void ReturnObjectToPool(Stack pool, GameObject obj, Transform container) { + if (obj == null || pool == null) return; // 防止空引用 + + // 避免重复归还:如果对象已在池内,直接忽略 + GamePlay.PoolItem pi = obj.GetComponent(); + if (pi != null && pi.inPool) return; + + // 将对象移动到池容器并重置变换 + obj.transform.SetParent(container, false); + obj.transform.localPosition = Vector3.zero; + obj.transform.localRotation = Quaternion.identity; + obj.transform.localScale = Vector3.one; + + // 设为非激活状态以便复用 + obj.SetActive(false); + + // 标记为已在池内 + if (pi != null) pi.inPool = true; + if (pool.Count < maxPoolSize) { - GameObject obj = Instantiate(prefab); + pool.Push(obj); + } + else + { + // 如果池已满,销毁多余对象以节省内存 + Destroy(obj); + } + } + + private void AddToPool(Stack pool, GameObject prefab, Transform container) + { + if (prefab == null) return; + if (pool.Count < maxPoolSize) + { + GameObject obj = Instantiate(prefab, container); + // ensure PoolItem exists and is marked in pool + GamePlay.PoolItem pi = obj.GetComponent() ?? obj.AddComponent(); + pi.prefabName = prefab.name; + pi.inPool = true; + obj.SetActive(false); pool.Push(obj); } @@ -107,41 +194,51 @@ public class NotePool : MonoBehaviour public GameObject GetNote(string color) { - int colorIndex = GetColorIndexFromName(color); - return GetObjectFromPool(notePools[colorIndex], notePrefabs[colorIndex]); + return GetObjectFromPool(notePools[colorIndex], notePrefabs[colorIndex], notePoolContainer); } public GameObject GetStartNote(string color) { - int colorIndex = GetColorIndexFromName(color); - return GetObjectFromPool(startNotePools[colorIndex], startNotePrefabs[colorIndex]); + return GetObjectFromPool(startNotePools[colorIndex], startNotePrefabs[colorIndex], startPoolContainer); } public GameObject GetHoldNoteSegment(string color) { - int colorIndex = GetColorIndexFromName(color); - return GetObjectFromPool(holdNotePools[colorIndex], holdNotePrefabs[colorIndex]); + return GetObjectFromPool(holdNotePools[colorIndex], holdNotePrefabs[colorIndex], holdPoolContainer); + } + + // 新增:从尾部专用池获取尾部片段(如果未配置尾部预制体则降级为中段) + public GameObject GetHoldNoteEndSegment(string color) + { + int colorIndex = GetColorIndexFromName(color); + GameObject prefab = (holdNoteEndPrefabs != null && holdNoteEndPrefabs.Length > colorIndex && holdNoteEndPrefabs[colorIndex] != null) + ? holdNoteEndPrefabs[colorIndex] + : holdNotePrefabs[colorIndex]; + return GetObjectFromPool(holdNoteEndPools[colorIndex], prefab, holdPoolContainer); } public void ReturnNote(GameObject note, string color) { - + if (note == null) return; NoteController noteScript = note.GetComponent(); if (noteScript != null) { noteScript.ResetState(); } - ReturnObjectToPool(notePools[GetColorIndexFromName(color)], note); + int idx = GetColorIndexFromName(color); + ReturnObjectToPool(notePools[idx], note, notePoolContainer); } public void ReturnStartNote(GameObject startNote, string color) { + if (startNote == null) return; if (string.IsNullOrEmpty(color)) { - Debug.LogWarning($" 归还 StartNote 时 color 为空!音符名: {startNote.name}"); + if (verboseLogging) Debug.LogWarning($" 归还 StartNote 时 color 为空!音符名: {startNote.name}"); + Destroy(startNote); return; } @@ -151,14 +248,38 @@ public class NotePool : MonoBehaviour holdNote.ResetState(); // 确保重置音符状态 } - ReturnObjectToPool(startNotePools[GetColorIndexFromName(color)], startNote); + int idx = GetColorIndexFromName(color); + ReturnObjectToPool(startNotePools[idx], startNote, startPoolContainer); + } + + // 新增:归还尾部片段 + public void ReturnHoldNoteEndSegment(GameObject holdNoteEnd, string color) + { + if (holdNoteEnd == null) return; + if (string.IsNullOrEmpty(color)) + { + if (verboseLogging) Debug.LogWarning($" 归还 HoldNoteEndSegment 时 color 为空!音符名: {holdNoteEnd.name}"); + Destroy(holdNoteEnd); + return; + } + + HoldNote holdNoteScript = holdNoteEnd.GetComponent(); + if (holdNoteScript != null) + { + holdNoteScript.ResetState(); // 确保重置音符状态 + } + + int idx = GetColorIndexFromName(color); + ReturnObjectToPool(holdNoteEndPools[idx], holdNoteEnd, holdPoolContainer); } public void ReturnHoldNoteSegment(GameObject holdNote, string color) { + if (holdNote == null) return; if (string.IsNullOrEmpty(color)) { - Debug.LogWarning($" 归还 HoldNoteSegment 时 color 为空!音符名: {holdNote.name}"); + if (verboseLogging) Debug.LogWarning($" 归还 HoldNoteSegment 时 color 为空!音符名: {holdNote.name}"); + Destroy(holdNote); return; } @@ -168,23 +289,21 @@ public class NotePool : MonoBehaviour holdNoteScript.ResetState(); // 确保重置音符状态 } - ReturnObjectToPool(holdNotePools[GetColorIndexFromName(color)], holdNote); + int idx = GetColorIndexFromName(color); + ReturnObjectToPool(holdNotePools[idx], holdNote, holdPoolContainer); } - private int GetColorIndexFromName(string colorName) - { - - switch (colorName) - { - case "red": return 0; - case "green": return 1; - case "yellow": return 2; - case "purple": return 3; - case "blue": return 4; - default: - Debug.LogError($"未识别的颜色: {colorName},默认使用红色"); - return 0; - } + { + if (string.IsNullOrEmpty(colorName)) return 0; + if (colorIndexMap != null && colorIndexMap.TryGetValue(colorName, out int idx)) return idx; + if (verboseLogging) Debug.LogError($"未识别的颜色: {colorName},默认使用红色"); + return 0; } } + +public class PoolItem : MonoBehaviour +{ + public string prefabName; + public bool inPool; +} diff --git a/Assets/scripts/gamePlay_gameplay/NoteSpawner.cs b/Assets/scripts/gamePlay_gameplay/NoteSpawner.cs index 62a2dce2..acbc27c7 100644 --- a/Assets/scripts/gamePlay_gameplay/NoteSpawner.cs +++ b/Assets/scripts/gamePlay_gameplay/NoteSpawner.cs @@ -58,7 +58,7 @@ public class NoteSpawner : MonoBehaviour float travelTime = (60f / bpm) * 4; float spawnTime = note.time - travelTime; float delay = spawnTime - (Time.time - startTime) + spawnOffset; - Debug.Log($"delay: {delay}"); + if (GameConfig.verboseLogs) Debug.Log($"delay: {delay}"); if (delay > 0) yield return new WaitForSeconds(delay); @@ -92,7 +92,7 @@ public class NoteSpawner : MonoBehaviour return; } - Debug.Log($"鐢熸垚鐭煶绗︼細棰滆壊={noteData.color}, 鎸夐敭={key}, 杞ㄩ亾={noteData.trackIndex}"); + if (GameConfig.verboseLogs) Debug.Log($"鐢熸垚鐭煶绗︼細棰滆壊={noteData.color}, 鎸夐敭={key}, 杞ㄩ亾={noteData.trackIndex}"); GameObject note = notePool.GetNote(noteData.color); if (note == null) @@ -108,8 +108,10 @@ public class NoteSpawner : MonoBehaviour if (noteScript != null) { float noteSpawnTime = Time.time; - noteScript.Setup(key, noteData.trackIndex, CalculateSpeed(), noteData.time, noteData.color, judgeConfig); - Debug.Log($"鍒拌揪鏃堕棿锛歿noteSpawnTime + (60f / bpm) * 4}"); + // pass realtime hit time to Note.Setup + float realtimeHit = startTime + noteData.time; + noteScript.Setup(key, noteData.trackIndex, CalculateSpeed(), realtimeHit, noteData.color, judgeConfig); + if (GameConfig.verboseLogs) Debug.Log($"鍒拌揪鏃堕棿锛歿noteSpawnTime + (60f / bpm) * 4}"); } else { @@ -143,12 +145,17 @@ public class NoteSpawner : MonoBehaviour float segmentInterval = (60f / bpm) / 4f; int segmentCount = Mathf.CeilToInt(noteData.length / segmentInterval); - Transform spawnPoint = spawnPoints[noteData.trackIndex]; - // 淇锛歴cheduledEndTime 搴斾负娓告垙鏃堕棿杞翠笂鐨勭粷瀵规椂闂达紙noteData.time + noteData.length锛 - float scheduledEndTime = noteData.time + noteData.length; + if (segmentCount < 1) segmentCount = 1; // 鑷冲皯涓涓墖娈 + // 濡傛灉鐢ㄨ妭鎷嶈绠楃殑鐗囨闂撮殧涓庡疄闄呴暱搴︿笉鏁撮櫎锛屽疄闄呯敤浜庡垎娈电殑闂撮殧搴斿綋鎸夊疄闄呴暱搴﹀潎鍒嗭紝 + // 浠ョ‘淇濆熬閮ㄩ煶绗︽帓鍦ㄦ渶鍚庝竴涓腑娈典箣鍚庡苟涓斿埌杈炬椂闂寸瓑浜庤氨闈㈢粨鏉熸椂闂淬 + float actualSegmentInterval = noteData.length / segmentCount; // 瀹為檯鐢ㄤ簬涓闂撮殧 - // 鐢熸垚鍞竴 id - int holdNoteId = Random.Range(100000, 999999); + Transform spawnPoint = spawnPoints[noteData.trackIndex]; + // scheduledEndTime 浣跨敤璋遍潰鏃堕棿锛坣ote.time + length锛夛紝浣嗚浆鎹负瀹炴椂 + float scheduledEndTime = startTime + (noteData.time + noteData.length); + + // 鐢熸垚鍞竴 id锛堟敼涓鸿嚜澧炶鏁板櫒锛岄伩鍏嶉殢鏈哄啿绐侊級 + int holdNoteId = ++holdNoteIdCounter; // 鐢熸垚 Start 娈 GameObject startObj = notePool.GetStartNote(noteData.color); @@ -163,7 +170,8 @@ public class NoteSpawner : MonoBehaviour HoldNote holdNote = startObj.GetComponent(); if (holdNote != null) { - holdNote.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, 0f, false, scheduledEndTime, noteData.color, key, "start", judgeConfig); + // pass realtime hit time (startTime + note.time) and delay 0 + holdNote.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), startTime + noteData.time, 0f, false, scheduledEndTime, noteData.color, key, "start", judgeConfig); } else { @@ -171,12 +179,10 @@ public class NoteSpawner : MonoBehaviour return; } - // 鐢熸垚 Middle 鍜 End 娈 + // 鐢熸垚 Middle 鐗囨锛1 .. segmentCount-1锛 for (int i = 1; i < segmentCount; i++) { - float segmentDelay = i * segmentInterval; - bool isEndSegment = (i == segmentCount - 1); - string partType = isEndSegment ? "end" : "middle"; + float segmentDelay = i * actualSegmentInterval; // 浣跨敤瀹為檯闂撮殧 GameObject segObj = notePool.GetHoldNoteSegment(noteData.color); if (segObj == null) @@ -191,13 +197,41 @@ public class NoteSpawner : MonoBehaviour HoldNote holdSeg = segObj.GetComponent(); if (holdSeg != null) { - holdSeg.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), noteData.time, segmentDelay, isEndSegment, scheduledEndTime, noteData.color, key, partType, judgeConfig); + // 涓閮芥爣璁颁负 middle锛宲ass realtime base time and segmentDelay + holdSeg.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), startTime + noteData.time, segmentDelay, false, scheduledEndTime, noteData.color, key, "middle", judgeConfig); } else { Debug.LogError("闀块煶绗︾墖娈电己灏 HoldNote 缁勪欢锛"); } } + + // 濮嬬粓鍦ㄤ腑娈典箣鍚庣敓鎴愪竴涓槑纭殑 End 娈碉紙灏鹃儴闊崇锛 + GameObject endObj = notePool.GetHoldNoteEndSegment(noteData.color); + if (endObj == null) + { + Debug.LogError("瀵硅薄姹犺繑鍥炵┖ hold note 鐗囨锛坋nd锛夛紒"); + return; + } + endObj.transform.position = spawnPoint.position; + endObj.transform.rotation = Quaternion.identity; + + // 涓轰究浜庤瘑鍒紝灏嗗疄渚嬪悕杩藉姞鍚庣紑 + if (GameConfig.verboseLogs) + endObj.name = endObj.name + "_end"; + if (GameConfig.verboseLogs) Debug.Log($"鐢熸垚灏鹃儴闊崇: {endObj.name} (holdId={holdNoteId}, color={noteData.color})"); + + HoldNote holdEnd = endObj.GetComponent(); + if (holdEnd != null) + { + // 灏 delay 璁剧疆涓烘暣涓 hold 闀垮害 (鎴 segmentCount * actualSegmentInterval)锛岀‘淇濆熬閮ㄥ湪鏈鍚庝腑娈典箣鍚 + float endDelay = segmentCount * actualSegmentInterval; // 閫氬父绛変簬 noteData.length + holdEnd.Setup(holdNoteId, noteData.trackIndex, CalculateSpeed(), startTime + noteData.time, endDelay, true, scheduledEndTime, noteData.color, key, "end", judgeConfig); + } + else + { + Debug.LogError("闀块煶绗 end 閮ㄥ垎缂哄皯 HoldNote 缁勪欢锛"); + } } diff --git a/Assets/scripts/gameplay_teamUI/teamUIController.cs b/Assets/scripts/gameplay_teamUI/teamUIController.cs index 2ea4d896..079fe4f8 100644 --- a/Assets/scripts/gameplay_teamUI/teamUIController.cs +++ b/Assets/scripts/gameplay_teamUI/teamUIController.cs @@ -4,6 +4,39 @@ using TMPro; public class teamUIController : MonoBehaviour { + public static teamUIController Instance { + get; + private set; + } + + [Header("基本文本")] + [Tooltip("title")] + public TextMeshProUGUI songNametitle; + public TextMeshProUGUI difficultyName; + public TextMeshProUGUI difficultyID; + public TextMeshProUGUI constructionName; + [Tooltip("连击计数")] + public Text comboCounter; + [Tooltip("敌人出场数量")] + public Text enemyCounter; + [SerializeField] private int enemyCounterMax; // 本局游戏敌人最大数 + [SerializeField] private int enemyCurrentCount; // 现在的敌人顺序 + [Tooltip("当前总分")] + public Text currentTotalScore; + + [Header("Combo判定最低要求")] + public ComboJudgeType comboJudgeType = ComboJudgeType.Perfect; + + private int combo = 0; + + public enum ComboJudgeType + { + Perfect, + Great, + Good, + // Miss + } + [Header("teammate01")] [Tooltip("父物体-控制整体显隐")] public GameObject objectFather_ally01; @@ -15,6 +48,10 @@ public class teamUIController : MonoBehaviour public Image teammate01_healthImage; [Tooltip("虚血条")] public Image teammate01_fadehealthImage; + [Tooltip("法力条")] + public Image teammate01_manaImage; + [Tooltip("虚法力条")] + public Image teammate01_fadeManaImage; [Tooltip("名字文本")] public TextMeshProUGUI teammate01_nameText; [Tooltip("当前生命值/最大生命值")] @@ -25,6 +62,14 @@ public class teamUIController : MonoBehaviour [SerializeField] private int ally01_id; [Tooltip("受击闪红")] public Image teammate01_hurtRedImage; + [Tooltip("当前生命值")] + [SerializeField] private int teammate01_currentHP; + [Tooltip("最大生命值")] + [SerializeField] private int teammate01_maxHP; + [Tooltip("当前法力值")] + [SerializeField] private int teammate01_currentMana; + [Tooltip("最大法力值")] + [SerializeField] private int teammate01_maxMana; [Header("teammate02")] [Tooltip("父物体-控制整体显隐")] @@ -37,6 +82,10 @@ public class teamUIController : MonoBehaviour public Image teammate02_healthImage; [Tooltip("虚血条")] public Image teammate02_fadehealthImage; + [Tooltip("法力条")] + public Image teammate02_manaImage; + [Tooltip("虚法力条")] + public Image teammate02_fadeManaImage; [Tooltip("名字文本")] public TextMeshProUGUI teammate02_nameText; [Tooltip("当前生命值/最大生命值")] @@ -47,6 +96,14 @@ public class teamUIController : MonoBehaviour [SerializeField] private int ally02_id; [Tooltip("受击闪红")] public Image teammate02_hurtRedImage; + [Tooltip("当前生命值")] + [SerializeField] private int teammate02_currentHP; + [Tooltip("最大生命值")] + [SerializeField] private int teammate02_maxHP; + [Tooltip("当前法力值")] + [SerializeField] private int teammate02_currentMana; + [Tooltip("最大法力值")] + [SerializeField] private int teammate02_maxMana; [Header("teammate03")] [Tooltip("父物体-控制整体显隐")] @@ -59,6 +116,10 @@ public class teamUIController : MonoBehaviour public Image teammate03_healthImage; [Tooltip("虚血条")] public Image teammate03_fadehealthImage; + [Tooltip("法力条")] + public Image teammate03_manaImage; + [Tooltip("虚法力条")] + public Image teammate03_fadeManaImage; [Tooltip("名字文本")] public TextMeshProUGUI teammate03_nameText; [Tooltip("当前生命值/最大生命值")] @@ -69,6 +130,14 @@ public class teamUIController : MonoBehaviour [SerializeField] private int ally03_id; [Tooltip("受击闪红")] public Image teammate03_hurtRedImage; + [Tooltip("当前生命值")] + [SerializeField] private int teammate03_currentHP; + [Tooltip("最大生命值")] + [SerializeField] private int teammate03_maxHP; + [Tooltip("当前法力值")] + [SerializeField] private int teammate03_currentMana; + [Tooltip("最大法力值")] + [SerializeField] private int teammate03_maxMana; [Header("teammate04")] [Tooltip("父物体-控制整体显隐")] @@ -81,6 +150,10 @@ public class teamUIController : MonoBehaviour public Image teammate04_healthImage; [Tooltip("虚血条")] public Image teammate04_fadehealthImage; + [Tooltip("法力条")] + public Image teammate04_manaImage; + [Tooltip("虚法力条")] + public Image teammate04_fadeManaImage; [Tooltip("名字文本")] public TextMeshProUGUI teammate04_nameText; [Tooltip("当前生命值/最大生命值")] @@ -91,6 +164,14 @@ public class teamUIController : MonoBehaviour [SerializeField] private int ally04_id; [Tooltip("受击闪红")] public Image teammate04_hurtRedImage; + [Tooltip("当前生命值")] + [SerializeField] private int teammate04_currentHP; + [Tooltip("最大生命值")] + [SerializeField] private int teammate04_maxHP; + [Tooltip("当前法力值")] + [SerializeField] private int teammate04_currentMana; + [Tooltip("最大法力值")] + [SerializeField] private int teammate04_maxMana; [Header("teammate05")] [Tooltip("父物体-控制整体显隐")] @@ -103,6 +184,10 @@ public class teamUIController : MonoBehaviour public Image teammate05_healthImage; [Tooltip("虚血条")] public Image teammate05_fadehealthImage; + [Tooltip("法力条")] + public Image teammate05_manaImage; + [Tooltip("虚法力条")] + public Image teammate05_fadeManaImage; [Tooltip("名字文本")] public TextMeshProUGUI teammate05_nameText; [Tooltip("当前生命值/最大生命值")] @@ -113,6 +198,14 @@ public class teamUIController : MonoBehaviour [SerializeField] private int ally05_id; [Tooltip("受击闪红")] public Image teammate05_hurtRedImage; + [Tooltip("当前生命值")] + [SerializeField] private int teammate05_currentHP; + [Tooltip("最大生命值")] + [SerializeField] private int teammate05_maxHP; + [Tooltip("当前法力值")] + [SerializeField] private int teammate05_currentMana; + [Tooltip("最大法力值")] + [SerializeField] private int teammate05_maxMana; [Header("currentEnemy")] [Tooltip("父物体-控制整体显隐")] @@ -139,17 +232,62 @@ public class teamUIController : MonoBehaviour // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { - - } + } + // Update is called once per frame void Update() { - + } private void FixedUpdate() { - + } -} + + private void Awake() + { + if (Instance == null) + Instance = this; + else + Destroy(gameObject); + } + + /// + /// 由判定系统调用,传入判定结果(如"Perfect"、"Great"、"Good"、"Miss") + /// + public void OnJudgeResult(string result) + { + if (IsCombo(result)) + { + combo++; + } + else + { + combo = 0; + } + if (comboCounter != null) + comboCounter.text = combo.ToString(); + } + + /// + /// 判断当前判定结果是否达到combo要求 + /// + private bool IsCombo(string result) + { + switch (comboJudgeType) + { + case ComboJudgeType.Perfect: + return result == "Perfect"; + case ComboJudgeType.Great: + return result == "Perfect" || result == "Great"; + case ComboJudgeType.Good: + return result == "Perfect" || result == "Great" || result == "Good"; + default: + return false; + } + } + + +} \ No newline at end of file diff --git a/Assets/scripts/runningTime.cs b/Assets/scripts/runningTime.cs index 948a10ae..31efe44d 100644 --- a/Assets/scripts/runningTime.cs +++ b/Assets/scripts/runningTime.cs @@ -13,7 +13,7 @@ public class runningTime : MonoBehaviour void Start() { - //allRunningTime.text = "0.00"; + // allRunningTime.text = "0.00"; } // Update is called once per frame