using UnityEngine; using UnityEngine.SceneManagement; /// /// Intro 씬의 XR Origin (Hands)에 추가하세요. /// DontDestroyOnLoad로 모든 씬에 XR Rig를 유지하고, /// 씬 전환 시 중복 카메라를 자동으로 비활성화합니다. /// [DisallowMultipleComponent] public class PersistentXRRig : MonoBehaviour { private void Awake() { // 이미 다른 PersistentXRRig가 살아있으면 자기 자신을 제거 (싱글턴) var existing = FindObjectsByType(FindObjectsSortMode.None); if (existing.Length > 1) { Destroy(gameObject); return; } DontDestroyOnLoad(gameObject); SceneManager.sceneLoaded += OnSceneLoaded; } private void OnDestroy() { SceneManager.sceneLoaded -= OnSceneLoaded; } private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { // SceneBuilder가 만든 일반 카메라(Main Camera)를 비활성화 // - XR Rig 자식 카메라는 유지 foreach (var cam in FindObjectsByType(FindObjectsSortMode.None)) { if (!cam.transform.IsChildOf(transform)) cam.gameObject.SetActive(false); } } }