Files
BeatSaber/Assets/VRBeatsKit/Scripts/Spawneable/SpawnEventInfo.cs
T
whdwo798 2f6aff7691 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>
2026-05-22 14:32:25 +09:00

39 lines
827 B
C#

using UnityEngine;
namespace VRBeats
{
public enum Direction
{
UpperLeft = 0,
Up,
UpperRight,
Left,
Center,
Right,
LowerLeft,
Down,
LowerRight
}
public enum ColorSide
{
Left,
Right
}
[System.Serializable]
public class SpawnEventInfo
{
public Direction hitDirection = Direction.Up;
public ColorSide colorSide = ColorSide.Right;
public bool useSpark = true;
public Vector3 position = Vector3.zero;
public Vector3 rotation = Vector3.zero;
public float speed = 2.0f;
public int speedMultiplier = 1;
// 0 이면 Settings.TargetTravelTime 사용, 양수면 해당 시간으로 이동
public float travelTimeOverride = 0f;
}
}