using UnityEngine;
using UnityEngine.SceneManagement;

/// <summary>
/// Intro 씬의 XR Origin (Hands)에 추가하세요.
/// DontDestroyOnLoad로 모든 씬에 XR Rig를 유지하고,
/// 씬 전환 시 중복 카메라를 자동으로 비활성화합니다.
/// </summary>
[DisallowMultipleComponent]
public class PersistentXRRig : MonoBehaviour
{
    private void Awake()
    {
        // 이미 다른 PersistentXRRig가 살아있으면 자기 자신을 제거 (싱글턴)
        var existing = FindObjectsByType<PersistentXRRig>(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<Camera>(FindObjectsSortMode.None))
        {
            if (!cam.transform.IsChildOf(transform))
                cam.gameObject.SetActive(false);
        }
    }
}
