feat: update song selection, score UI, and song creator features
- SongSelectManager/SongDetailPanel: 곡 선택 및 상세 패널 개선 - SongCreatorManager: 곡 생성 기능 추가 - FinalScoreLabel/ScoreManager: 결과 화면 점수 UI 업데이트 - MarqueeText: 마퀴 텍스트 컴포넌트 개선 - NoteData/SongController: 노트 데이터 및 컨트롤러 보완 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -156,8 +156,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: -18, y: 19.5}
|
||||
m_SizeDelta: {x: 30, y: 7}
|
||||
m_AnchoredPosition: {x: -19, y: 19.5}
|
||||
m_SizeDelta: {x: 34, y: 7}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &11933137
|
||||
MonoBehaviour:
|
||||
@@ -456,8 +456,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: 0, y: 4}
|
||||
m_SizeDelta: {x: 50, y: 0.4}
|
||||
m_AnchoredPosition: {x: 0, y: 4.2}
|
||||
m_SizeDelta: {x: 68, y: 0.4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &97527770
|
||||
MonoBehaviour:
|
||||
@@ -652,7 +652,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -1267,8 +1267,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: 0, y: 12}
|
||||
m_SizeDelta: {x: 50, y: 6}
|
||||
m_AnchoredPosition: {x: -16.05, y: 10.8}
|
||||
m_SizeDelta: {x: 42, y: 4.8}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &285384529
|
||||
MonoBehaviour:
|
||||
@@ -1290,7 +1290,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text:
|
||||
m_text: Anesthesia
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
@@ -1299,7 +1299,7 @@ MonoBehaviour:
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
rgba: 3439329279
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 0.8}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
@@ -1312,7 +1312,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -1324,7 +1324,7 @@ MonoBehaviour:
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
@@ -1405,8 +1405,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: -26.6, y: -9.4}
|
||||
m_SizeDelta: {x: 52.7, y: 49}
|
||||
m_AnchoredPosition: {x: -44, y: -9.4}
|
||||
m_SizeDelta: {x: 56, y: 49}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &313102848
|
||||
GameObject:
|
||||
@@ -1682,7 +1682,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!224 &365318615
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1830,16 +1830,16 @@ RectTransform:
|
||||
m_GameObject: {fileID: 365636951}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1536039027}
|
||||
m_Father: {fileID: 1223157292}
|
||||
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: 12, y: -14}
|
||||
m_SizeDelta: {x: 22, y: 7}
|
||||
m_AnchoredPosition: {x: 17, y: -9.7}
|
||||
m_SizeDelta: {x: 27, y: 6}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &365636953
|
||||
MonoBehaviour:
|
||||
@@ -1957,7 +1957,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: 0.1, y: -9.4}
|
||||
m_AnchoredPosition: {x: -15, y: -9.4}
|
||||
m_SizeDelta: {x: 0.5, y: 49}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &393692317
|
||||
@@ -2300,16 +2300,16 @@ RectTransform:
|
||||
m_GameObject: {fileID: 549476134}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 138927897}
|
||||
m_Father: {fileID: 1223157292}
|
||||
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: -12, y: -5}
|
||||
m_SizeDelta: {x: 22, y: 7}
|
||||
m_AnchoredPosition: {x: -17, y: -2}
|
||||
m_SizeDelta: {x: 27, y: 6}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &549476136
|
||||
MonoBehaviour:
|
||||
@@ -2428,7 +2428,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 15.5}
|
||||
m_SizeDelta: {x: 104, y: 0.5}
|
||||
m_SizeDelta: {x: 144, y: 0.5}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &584186484
|
||||
MonoBehaviour:
|
||||
@@ -2534,7 +2534,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -0.54999924, y: 0.040000916}
|
||||
m_AnchoredPosition: {x: -0.55000305, y: 0.040000916}
|
||||
m_SizeDelta: {x: 1.1, y: 3.12}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &624828134
|
||||
@@ -2639,8 +2639,8 @@ RectTransform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 661667650}
|
||||
m_LocalRotation: {x: 0, y: 0.38268343, z: 0, w: 0.92387956}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 20.29}
|
||||
m_LocalScale: {x: 0.25, y: 0.25, z: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 21.44}
|
||||
m_LocalScale: {x: 0.21, y: 0.21, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 140294464}
|
||||
@@ -2652,7 +2652,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 24.01, y: 4.71}
|
||||
m_AnchoredPosition: {x: 28.85, y: 4.71}
|
||||
m_SizeDelta: {x: 105.885, y: 71.226}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &661667652
|
||||
@@ -2786,8 +2786,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: 14, y: 19.5}
|
||||
m_SizeDelta: {x: 30, y: 7}
|
||||
m_AnchoredPosition: {x: 17.5, y: 19.5}
|
||||
m_SizeDelta: {x: 34, y: 7}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &711973508
|
||||
MonoBehaviour:
|
||||
@@ -3087,7 +3087,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -3224,7 +3224,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -3310,16 +3310,16 @@ RectTransform:
|
||||
m_GameObject: {fileID: 848577108}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2121890138}
|
||||
m_Father: {fileID: 1223157292}
|
||||
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: 12, y: -5}
|
||||
m_SizeDelta: {x: 22, y: 7}
|
||||
m_AnchoredPosition: {x: 17, y: -2}
|
||||
m_SizeDelta: {x: 27, y: 6}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &848577110
|
||||
MonoBehaviour:
|
||||
@@ -3437,8 +3437,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: 0, y: 7}
|
||||
m_SizeDelta: {x: 50, y: 5}
|
||||
m_AnchoredPosition: {x: 20.5, y: 10.8}
|
||||
m_SizeDelta: {x: 28, y: 4.8}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &861505383
|
||||
MonoBehaviour:
|
||||
@@ -3460,7 +3460,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text:
|
||||
m_text: BPM 120
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
@@ -3469,7 +3469,7 @@ MonoBehaviour:
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
rgba: 2583691263
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 0.6}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
@@ -3482,7 +3482,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -3494,7 +3494,7 @@ MonoBehaviour:
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
@@ -3611,8 +3611,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: -3, y: 18.5}
|
||||
m_SizeDelta: {x: 38, y: 8}
|
||||
m_AnchoredPosition: {x: -5.5, y: 17}
|
||||
m_SizeDelta: {x: 63, y: 7.4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &921515098
|
||||
MonoBehaviour:
|
||||
@@ -3634,7 +3634,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: ---
|
||||
m_text: Oxlo
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
@@ -3656,13 +3656,13 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 6.5
|
||||
m_fontSizeBase: 6.5
|
||||
m_fontSize: 7.2
|
||||
m_fontSizeBase: 7.2
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
@@ -3817,16 +3817,16 @@ RectTransform:
|
||||
m_GameObject: {fileID: 967100893}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 829525444}
|
||||
m_Father: {fileID: 1223157292}
|
||||
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: 16.400002, y: -22.900002}
|
||||
m_SizeDelta: {x: 16, y: 7}
|
||||
m_AnchoredPosition: {x: 22.5, y: -20.2}
|
||||
m_SizeDelta: {x: 18, y: 6.4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &967100895
|
||||
MonoBehaviour:
|
||||
@@ -4019,8 +4019,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: 0, y: -18.5}
|
||||
m_SizeDelta: {x: 50, y: 0.4}
|
||||
m_AnchoredPosition: {x: 0, y: -16}
|
||||
m_SizeDelta: {x: 68, y: 0.4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1010856770
|
||||
MonoBehaviour:
|
||||
@@ -4095,7 +4095,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 23.5}
|
||||
m_SizeDelta: {x: 104, y: 0.5}
|
||||
m_SizeDelta: {x: 144, y: 0.5}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1014388332
|
||||
MonoBehaviour:
|
||||
@@ -4255,7 +4255,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1223157292
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -4265,7 +4265,7 @@ RectTransform:
|
||||
m_GameObject: {fileID: 1223157291}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.89393, y: 0.89393, z: 0.89393}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1293606945}
|
||||
@@ -4287,8 +4287,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: 26.6, y: -9.4}
|
||||
m_SizeDelta: {x: 52.7, y: 49}
|
||||
m_AnchoredPosition: {x: 29, y: -9.4}
|
||||
m_SizeDelta: {x: 86, y: 49}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1223157293
|
||||
MonoBehaviour:
|
||||
@@ -4486,7 +4486,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -4656,8 +4656,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: 21, y: 20.5}
|
||||
m_SizeDelta: {x: 8, y: 7}
|
||||
m_AnchoredPosition: {x: 37, y: 20.5}
|
||||
m_SizeDelta: {x: 7, y: 6.5}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1293606946
|
||||
MonoBehaviour:
|
||||
@@ -4769,16 +4769,16 @@ RectTransform:
|
||||
m_GameObject: {fileID: 1388756479}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1245764537}
|
||||
m_Father: {fileID: 1223157292}
|
||||
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: -9.5, y: -22.7}
|
||||
m_SizeDelta: {x: 34, y: 7}
|
||||
m_AnchoredPosition: {x: -12.5, y: -20.2}
|
||||
m_SizeDelta: {x: 40, y: 6.4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1388756481
|
||||
MonoBehaviour:
|
||||
@@ -5026,16 +5026,16 @@ RectTransform:
|
||||
m_GameObject: {fileID: 1436526096}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1786385005}
|
||||
m_Father: {fileID: 1223157292}
|
||||
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: -12, y: -14}
|
||||
m_SizeDelta: {x: 22, y: 7}
|
||||
m_AnchoredPosition: {x: -17, y: -9.7}
|
||||
m_SizeDelta: {x: 27, y: 6}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1436526098
|
||||
MonoBehaviour:
|
||||
@@ -5241,8 +5241,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: 0.67, y: 4.46}
|
||||
m_SizeDelta: {x: 105.885, y: 68.223}
|
||||
m_AnchoredPosition: {x: 0.4, y: 4.5}
|
||||
m_SizeDelta: {x: 148, y: 68.2}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1445586371
|
||||
MonoBehaviour:
|
||||
@@ -5493,7 +5493,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -5933,7 +5933,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 28.5}
|
||||
m_SizeDelta: {x: 100, y: 9}
|
||||
m_SizeDelta: {x: 138, y: 9}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1754869934
|
||||
MonoBehaviour:
|
||||
@@ -6233,7 +6233,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -6626,7 +6626,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
@@ -6720,8 +6720,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: -6, y: -21.5}
|
||||
m_SizeDelta: {x: 34, y: 7}
|
||||
m_AnchoredPosition: {x: -12.5, y: -20.2}
|
||||
m_SizeDelta: {x: 40, y: 6.4}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1888615411
|
||||
MonoBehaviour:
|
||||
@@ -7157,8 +7157,8 @@ RectTransform:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1946485404}
|
||||
m_LocalRotation: {x: 0, y: -0.38268343, z: 0, w: 0.92387956}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 18.33}
|
||||
m_LocalScale: {x: 0.25, y: 0.25, z: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 20.96}
|
||||
m_LocalScale: {x: 0.21, y: 0.21, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2121492652}
|
||||
@@ -7167,7 +7167,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: -45, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -21.77, y: 4.39}
|
||||
m_AnchoredPosition: {x: -27.37, y: 4.39}
|
||||
m_SizeDelta: {x: 105.89, y: 66.53}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1946485406
|
||||
@@ -7727,7 +7727,7 @@ MonoBehaviour:
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: 0
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -11,12 +11,16 @@ namespace VRBeats
|
||||
private string initialValue = "";
|
||||
private ScoreManager scoreManager = null;
|
||||
private GameObject resultRoot = null;
|
||||
private TextMeshProUGUI rankBackText = null;
|
||||
private TextMeshProUGUI rankShadowText = null;
|
||||
private TextMeshProUGUI rankDepthText = null;
|
||||
private TextMeshProUGUI rankRimText = null;
|
||||
private TextMeshProUGUI rankMainText = null;
|
||||
private TextMeshProUGUI rankHighlightText = null;
|
||||
private TextMeshProUGUI resultScoreText = null;
|
||||
private TextMeshProUGUI resultAccuracyText = null;
|
||||
private TextMeshProUGUI resultComboText = null;
|
||||
private CanvasGroup scoreHudCanvasGroup = null;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@@ -24,6 +28,9 @@ namespace VRBeats
|
||||
initialValue += "0";
|
||||
|
||||
scoreManager = FindFirstObjectByType<ScoreManager>();
|
||||
if (scoreManager != null)
|
||||
scoreHudCanvasGroup = scoreManager.GetComponent<CanvasGroup>() ??
|
||||
scoreManager.gameObject.AddComponent<CanvasGroup>();
|
||||
ApplyPopupTextStyle();
|
||||
BuildResultLayout();
|
||||
}
|
||||
@@ -34,6 +41,7 @@ namespace VRBeats
|
||||
return;
|
||||
|
||||
SetTitleActive(false);
|
||||
SetScoreHudVisible(false);
|
||||
gameObject.CancelAllTweens();
|
||||
|
||||
if (resultRoot != null)
|
||||
@@ -58,6 +66,7 @@ namespace VRBeats
|
||||
scoreText.gameObject.SetActive(true);
|
||||
|
||||
SetTitleActive(true);
|
||||
SetScoreHudVisible(true);
|
||||
ApplyPopupTextStyle();
|
||||
|
||||
if (scoreText != null)
|
||||
@@ -67,9 +76,12 @@ namespace VRBeats
|
||||
private void PopulateResultLayout()
|
||||
{
|
||||
if (scoreManager == null ||
|
||||
rankBackText == null ||
|
||||
rankShadowText == null ||
|
||||
rankDepthText == null ||
|
||||
rankRimText == null ||
|
||||
rankMainText == null ||
|
||||
rankHighlightText == null ||
|
||||
resultScoreText == null ||
|
||||
resultAccuracyText == null ||
|
||||
resultComboText == null)
|
||||
@@ -78,16 +90,20 @@ namespace VRBeats
|
||||
string rank = scoreManager.Rank;
|
||||
Color mainColor = HexToColor(scoreManager.RankColorHex);
|
||||
Color depthColor = HexToColor(GetRankDepthColorHex(rank));
|
||||
Color rimColor = HexToColor(GetRankRimColorHex(rank));
|
||||
|
||||
rankBackText.text = rank;
|
||||
rankShadowText.text = rank;
|
||||
rankDepthText.text = rank;
|
||||
rankDepthText.color = depthColor;
|
||||
rankRimText.text = rank;
|
||||
rankMainText.text = rank;
|
||||
rankMainText.color = mainColor;
|
||||
rankHighlightText.text = rank;
|
||||
ApplyMetalRankColors(mainColor, depthColor, rimColor);
|
||||
resultScoreText.text =
|
||||
$"<size=48%><color=#A0C8FF>SCORE</color></size>\n{scoreManager.CurrentScore:N0}";
|
||||
$"<size=56%><color=#A0C8FF>SCORE</color></size>\n{scoreManager.CurrentScore:N0}";
|
||||
resultAccuracyText.text =
|
||||
$"<size=70%><color=#A0C8FF>ACCURACY</color></size> {scoreManager.AccuracyPercent:0.0}%";
|
||||
$"<color=#A0C8FF>ACCURACY</color> {scoreManager.AccuracyPercent:0.0}%";
|
||||
resultComboText.text = $"MAX COMBO {scoreManager.MaxCombo}";
|
||||
}
|
||||
|
||||
@@ -123,6 +139,16 @@ namespace VRBeats
|
||||
scoreText.richText = true;
|
||||
}
|
||||
|
||||
private void SetScoreHudVisible(bool visible)
|
||||
{
|
||||
if (scoreHudCanvasGroup == null)
|
||||
return;
|
||||
|
||||
scoreHudCanvasGroup.alpha = visible ? 1.0f : 0.0f;
|
||||
scoreHudCanvasGroup.interactable = false;
|
||||
scoreHudCanvasGroup.blocksRaycasts = false;
|
||||
}
|
||||
|
||||
private void BuildResultLayout()
|
||||
{
|
||||
if (scoreText == null)
|
||||
@@ -137,32 +163,47 @@ namespace VRBeats
|
||||
RectTransform rootRect = root.AddComponent<RectTransform>();
|
||||
rootRect.anchorMin = new Vector2(0.5f, 0.5f);
|
||||
rootRect.anchorMax = new Vector2(0.5f, 0.5f);
|
||||
rootRect.anchoredPosition = Vector2.zero;
|
||||
rootRect.sizeDelta = new Vector2(620.0f, 250.0f);
|
||||
rootRect.anchoredPosition = new Vector2(5.0f, 3.1f);
|
||||
rootRect.sizeDelta = new Vector2(82.0f, 34.0f);
|
||||
root.SetActive(false);
|
||||
resultRoot = root;
|
||||
|
||||
// Rank badge left side — hierarchy order = draw order (shadow first, main on top)
|
||||
// Panel-local coordinates are small world-canvas units, not screen pixels.
|
||||
rankBackText = MakeTmpLabel(root.transform, "RankBackText",
|
||||
new Vector2(-20.9f, -1.1f), new Vector2(37.0f, 27.0f), 16.0f,
|
||||
new Color(0.0f, 0.0f, 0.0f, 0.48f), TextAlignmentOptions.Midline);
|
||||
rankShadowText = MakeTmpLabel(root.transform, "RankShadowText",
|
||||
new Vector2(-166.0f, 6.0f), new Vector2(200.0f, 200.0f), 14.0f,
|
||||
new Color(0.0f, 0.0f, 0.0f, 0.55f), TextAlignmentOptions.Midline);
|
||||
new Vector2(-21.35f, -0.55f), new Vector2(37.0f, 27.0f), 16.0f,
|
||||
new Color(0.0f, 0.06f, 0.14f, 0.82f), TextAlignmentOptions.Midline);
|
||||
rankDepthText = MakeTmpLabel(root.transform, "RankDepthText",
|
||||
new Vector2(-168.0f, 8.0f), new Vector2(200.0f, 200.0f), 14.0f,
|
||||
new Vector2(-21.8f, -0.1f), new Vector2(37.0f, 27.0f), 16.0f,
|
||||
Color.white, TextAlignmentOptions.Midline);
|
||||
rankRimText = MakeTmpLabel(root.transform, "RankRimText",
|
||||
new Vector2(-22.15f, 0.22f), new Vector2(37.0f, 27.0f), 16.0f,
|
||||
Color.white, TextAlignmentOptions.Midline);
|
||||
rankMainText = MakeTmpLabel(root.transform, "RankMainText",
|
||||
new Vector2(-170.0f, 10.0f), new Vector2(200.0f, 200.0f), 14.0f,
|
||||
new Vector2(-22.45f, 0.5f), new Vector2(37.0f, 27.0f), 16.0f,
|
||||
Color.white, TextAlignmentOptions.Midline);
|
||||
rankHighlightText = MakeTmpLabel(root.transform, "RankHighlightText",
|
||||
new Vector2(-22.85f, 1.0f), new Vector2(37.0f, 27.0f), 16.0f,
|
||||
Color.white, TextAlignmentOptions.Midline);
|
||||
|
||||
// Score, accuracy, combo right side
|
||||
resultScoreText = MakeTmpLabel(root.transform, "ResultScoreText",
|
||||
new Vector2(70.0f, 58.0f), new Vector2(260.0f, 90.0f), 5.5f,
|
||||
new Vector2(16.8f, 7.4f), new Vector2(43.0f, 10.8f), 5.35f,
|
||||
Color.white, TextAlignmentOptions.MidlineLeft);
|
||||
resultAccuracyText = MakeTmpLabel(root.transform, "ResultAccuracyText",
|
||||
new Vector2(70.0f, 0.0f), new Vector2(260.0f, 46.0f), 3.4f,
|
||||
new Vector2(16.8f, -1.2f), new Vector2(43.0f, 5.4f), 3.05f,
|
||||
new Color(0.84f, 0.97f, 1.0f, 0.9f), TextAlignmentOptions.MidlineLeft);
|
||||
resultComboText = MakeTmpLabel(root.transform, "ResultComboText",
|
||||
new Vector2(70.0f, -52.0f), new Vector2(260.0f, 44.0f), 3.0f,
|
||||
new Vector2(16.8f, -6.8f), new Vector2(43.0f, 5.4f), 2.95f,
|
||||
new Color(0.84f, 0.97f, 1.0f, 1.0f), TextAlignmentOptions.MidlineLeft);
|
||||
|
||||
ConfigureRankLayer(rankBackText, new Color(0.0f, 0.0f, 0.0f, 0.72f), 0.34f);
|
||||
ConfigureRankLayer(rankShadowText, new Color(0.0f, 0.0f, 0.0f, 0.74f), 0.2f);
|
||||
ConfigureRankLayer(rankDepthText, new Color(0.0f, 0.0f, 0.0f, 0.55f), 0.13f);
|
||||
ConfigureRankLayer(rankRimText, new Color(1.0f, 1.0f, 1.0f, 0.82f), 0.08f);
|
||||
ConfigureRankLayer(rankMainText, new Color(0.0f, 0.16f, 0.28f, 0.7f), 0.06f);
|
||||
ConfigureRankLayer(rankHighlightText, new Color(1.0f, 1.0f, 1.0f, 0.35f), 0.02f);
|
||||
}
|
||||
|
||||
private TextMeshProUGUI MakeTmpLabel(Transform parent, string name,
|
||||
@@ -178,11 +219,14 @@ namespace VRBeats
|
||||
|
||||
TextMeshProUGUI tmp = go.AddComponent<TextMeshProUGUI>();
|
||||
tmp.fontSize = fontSize;
|
||||
tmp.enableAutoSizing = true;
|
||||
tmp.fontSizeMin = fontSize * 0.6f;
|
||||
tmp.fontSizeMax = fontSize;
|
||||
tmp.color = color;
|
||||
tmp.alignment = align;
|
||||
tmp.overflowMode = TextOverflowModes.Overflow;
|
||||
tmp.overflowMode = TextOverflowModes.Truncate;
|
||||
tmp.textWrappingMode = TextWrappingModes.NoWrap;
|
||||
tmp.lineSpacing = -8.0f;
|
||||
tmp.lineSpacing = -4.0f;
|
||||
tmp.raycastTarget = false;
|
||||
|
||||
if (scoreText != null && scoreText.font != null)
|
||||
@@ -194,6 +238,68 @@ namespace VRBeats
|
||||
return tmp;
|
||||
}
|
||||
|
||||
private static void ConfigureRankLayer(TextMeshProUGUI tmp, Color outlineColor, float outlineWidth)
|
||||
{
|
||||
if (tmp == null)
|
||||
return;
|
||||
|
||||
tmp.fontSizeMin = tmp.fontSize * 0.75f;
|
||||
tmp.outlineColor = outlineColor;
|
||||
tmp.outlineWidth = outlineWidth;
|
||||
tmp.characterSpacing = -1.0f;
|
||||
}
|
||||
|
||||
private void ApplyMetalRankColors(Color mainColor, Color depthColor, Color rimColor)
|
||||
{
|
||||
Color darkMetal = new Color(0.02f, 0.08f, 0.14f, 0.82f);
|
||||
Color steel = new Color(0.70f, 0.95f, 1.0f, 1.0f);
|
||||
Color whiteHot = new Color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
Color lowerMain = Color.Lerp(mainColor, depthColor, 0.55f);
|
||||
|
||||
SetSolidRankLayer(rankBackText, new Color(0.0f, 0.0f, 0.0f, 0.50f));
|
||||
SetSolidRankLayer(rankShadowText, darkMetal);
|
||||
SetRankGradient(rankDepthText,
|
||||
Color.Lerp(depthColor, steel, 0.22f),
|
||||
depthColor,
|
||||
new Color(0.0f, 0.12f, 0.22f, 0.95f),
|
||||
new Color(0.0f, 0.05f, 0.10f, 0.95f));
|
||||
SetRankGradient(rankRimText,
|
||||
whiteHot,
|
||||
rimColor,
|
||||
Color.Lerp(rimColor, mainColor, 0.35f),
|
||||
Color.Lerp(mainColor, depthColor, 0.45f));
|
||||
SetRankGradient(rankMainText,
|
||||
whiteHot,
|
||||
Color.Lerp(whiteHot, rimColor, 0.45f),
|
||||
Color.Lerp(mainColor, steel, 0.18f),
|
||||
lowerMain);
|
||||
SetRankGradient(rankHighlightText,
|
||||
new Color(1.0f, 1.0f, 1.0f, 0.42f),
|
||||
new Color(0.92f, 1.0f, 1.0f, 0.28f),
|
||||
new Color(1.0f, 1.0f, 1.0f, 0.08f),
|
||||
new Color(1.0f, 1.0f, 1.0f, 0.02f));
|
||||
}
|
||||
|
||||
private static void SetSolidRankLayer(TextMeshProUGUI tmp, Color color)
|
||||
{
|
||||
if (tmp == null)
|
||||
return;
|
||||
|
||||
tmp.enableVertexGradient = false;
|
||||
tmp.color = color;
|
||||
}
|
||||
|
||||
private static void SetRankGradient(TextMeshProUGUI tmp,
|
||||
Color topLeft, Color topRight, Color bottomLeft, Color bottomRight)
|
||||
{
|
||||
if (tmp == null)
|
||||
return;
|
||||
|
||||
tmp.enableVertexGradient = true;
|
||||
tmp.color = Color.white;
|
||||
tmp.colorGradient = new VertexGradient(topLeft, topRight, bottomLeft, bottomRight);
|
||||
}
|
||||
|
||||
private static string GetRankDepthColorHex(string rank)
|
||||
{
|
||||
switch (rank)
|
||||
@@ -209,6 +315,21 @@ namespace VRBeats
|
||||
}
|
||||
}
|
||||
|
||||
private static string GetRankRimColorHex(string rank)
|
||||
{
|
||||
switch (rank)
|
||||
{
|
||||
case "M": return "#FFFFFF";
|
||||
case "S+": return "#E8FFFF";
|
||||
case "S": return "#FFF4B8";
|
||||
case "A": return "#F1FFD8";
|
||||
case "B": return "#FFF5B8";
|
||||
case "C": return "#FFE0B8";
|
||||
case "D": return "#FFD5D5";
|
||||
default: return "#E8F0F8";
|
||||
}
|
||||
}
|
||||
|
||||
private static Color HexToColor(string hex)
|
||||
{
|
||||
if (ColorUtility.TryParseHtmlString(hex, out Color color))
|
||||
|
||||
@@ -142,6 +142,25 @@ namespace VRBeats
|
||||
UpdateScoreTween();
|
||||
}
|
||||
|
||||
public void ApplyForcedResult(int noteCount, int perfect, int great, int good, int miss, int forcedMaxCombo)
|
||||
{
|
||||
totalNoteCount = Mathf.Max(0, noteCount);
|
||||
perfectCount = Mathf.Max(0, perfect);
|
||||
greatCount = Mathf.Max(0, great);
|
||||
goodCount = Mathf.Max(0, good);
|
||||
missCount = Mathf.Max(0, miss);
|
||||
judgedNoteCount = perfectCount + greatCount + goodCount + missCount;
|
||||
earnedAccuracyPoints = perfectCount * 1000 + greatCount * 900 + goodCount * 700;
|
||||
maxCombo = Mathf.Clamp(forcedMaxCombo, 0, Mathf.Max(totalNoteCount, judgedNoteCount));
|
||||
currentCombo = maxCombo;
|
||||
currentMultiplier = missCount > 0 ? 1.0f : GetComboMultiplier(currentCombo);
|
||||
lastJudgement = missCount > 0 ? BeatJudgement.Miss : BeatJudgement.Perfect;
|
||||
judgementTimer = 0.45f;
|
||||
resultFinalized = false;
|
||||
UpdateScoreTween();
|
||||
UpdateMultiplierLoaderValue();
|
||||
}
|
||||
|
||||
public void CompleteSong()
|
||||
{
|
||||
if (resultFinalized)
|
||||
|
||||
Reference in New Issue
Block a user