feat: Game scene — SongController bridges custom map to VRBeatsKit

- SongController: loads MP3 + Beat Saber JSON map, runs countdown (3→2→1→GO),
  spawns cubes via VR_BeatManager.Spawn() synced to audioSource.time
- NoteData → SpawnEventInfo mapping: position/lineLayer → x/y, colorType → ColorSide,
  cutDirection → Direction enum
- travelTimeOverride on SpawnEventInfo: each cube's travel time is back-calculated
  from remaining time at spawn moment, so simultaneous notes arrive at hit zone together
  regardless of frame-level spawn delay
- AudioManager: add PlayClip(AudioClip) and CurrentTime property
- VR_BeatManager: respect travelTimeOverride when non-zero
- Settings.asset: targetTravelTime 0.5 → 1.8 for natural Beat Saber approach feel
- SceneBuilder ④: auto-builds Game.unity from SaberStyle, wires SongController refs,
  registers in Build Settings
- LiberationSans SDF fallback updated with NanumGothic for Korean text support
- Remove unused SampleScene

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-22 14:32:25 +09:00
parent 64ef3d64ec
commit 2f6aff7691
13 changed files with 5813 additions and 471 deletions
+23 -23
View File
@@ -1,23 +1,23 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7aabf7bc54d695644952b5c737f1c915, type: 3}
m_Name: Settings
m_EditorClassIdentifier:
rightColor: {r: 0, g: 0.6002884, b: 1, a: 1}
leftColor: {r: 1, g: 0, b: 0, a: 1}
glowIntensity: 100
targetTravelDistance: 40
targetTravelTime: 0.5
targetTravelEase: 19
errorLimit: 7
scorePerHit: 50
maxMultiplier: 8
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7aabf7bc54d695644952b5c737f1c915, type: 3}
m_Name: Settings
m_EditorClassIdentifier:
rightColor: {r: 0, g: 0.6002884, b: 1, a: 1}
leftColor: {r: 1, g: 0, b: 0, a: 1}
glowIntensity: 100
targetTravelDistance: 40
targetTravelTime: 1.8
targetTravelEase: 19
errorLimit: 7
scorePerHit: 50
maxMultiplier: 8