// // /*=============================================================================== // // Copyright (C) 2025 PhantomsXR Ltd. All Rights Reserved. // // // // This file is part of the Phantom.XRMOD.OpenXRModule.Runtime. // // // // The XR-MOD cannot be copied, distributed, or made available to // // third-parties for commercial purposes without written permission of PhantomsXR Ltd. // // // // Contact nswell@phantomsxr.com for licensing requests. // // ===============================================================================*/ using UnityEngine; namespace Phantom.XRMOD.OpenXRMOD.Runtime { #if UNITY_OPENXR public class SpacewarpController : MonoBehaviour { public static SpacewarpController Instance { get; private set; } public bool EnableSpacewarp = false; private void Awake() { if (Instance != null && Instance != this) { Destroy(gameObject); // 保证单例唯一性 return; } Instance = this; DontDestroyOnLoad(gameObject); // 可选:是否在切换场景时保留 } /// /// Set Spacewarp state /// /// public void SetSpacewarpEnabled(bool _enabled) { EnableSpacewarp = _enabled; SpacewarpFeature.SetSpacewarp(_enabled); } void Update() { if (!EnableSpacewarp) return; // Update spacewarp with camera position and rotation SpacewarpFeature.SetAppSpaceTransform(transform.position, transform.rotation); } } #endif }