/// <summary> /// tries to ensure there is only a single audio listener in the scene for startup, /// to avoid unnecessary warnings being spammed to the console (the appropriate /// audio listener will be enabled later) /// </summary> protected virtual void TryEnsureSingleAudioListener() { #if UNITY_5_3_OR_NEWER AudioListener[] listeners = GameObject.FindObjectsOfType <AudioListener>(); foreach (AudioListener a in listeners) { a.enabled = false; } AudioListener b; if (CenterEyeAnchor != null) { b = CenterEyeAnchor.GetComponentInChildren <AudioListener>(true); if (b != null) { b.enabled = true; } } else { b = FPCamera.GetComponentInChildren <AudioListener>(true); if (b != null) { b.enabled = true; } } #else if (FindObjectsOfType <AudioListener>().Length > 1) { if (VRAudioListener != null) { VRAudioListener.enabled = false; } FindObjectOfType <AudioListener>().enabled = true; } else if (FindObjectsOfType <AudioListener>().Length < 1) { gameObject.AddComponent <AudioListener>(); } #endif }
private void Start() { _player = FindObjectOfType <Player>(); gameObject.tag = "RenderCamera"; _layer = 1 << LayerMask.NameToLayer("FakeWorld"); if (CenterEyeAnchor == null) { CenterEyeAnchor = ConfigureAnchor(null, CenterEyeAnchorName); } if (CenterEyeCamera == null) { CenterEyeCamera = CenterEyeAnchor.GetComponent <Camera>(); CenterEyeCamera = CenterEyeAnchor.gameObject.AddComponent <Camera>(); CenterEyeAnchor.name = "portalCamera"; } SetupCameraProperties(CenterEyeCamera); }
private void SetupHierarchy() { if (TrackingSpace == null) { TrackingSpace = ConfigureRootAnchor(trackingSpaceName); } if (LeftEyeAnchor == null) { LeftEyeAnchor = ConfigureEyeAnchor(TrackingSpace, VREyeType.LeftEye); } if (CenterEyeAnchor == null) { CenterEyeAnchor = ConfigureEyeAnchor(TrackingSpace, VREyeType.CenterEye); } if (RightEyeAnchor == null) { RightEyeAnchor = ConfigureEyeAnchor(TrackingSpace, VREyeType.RightEye); } if (TrackerAnchor == null) { TrackerAnchor = ConfigureTrackerAnchor(TrackingSpace); } if (LeftControllerAnchor == null) { LeftControllerAnchor = ConfigureControllerAnchor(TrackingSpace, VRControllerRole.LeftHand); LeftController = LeftControllerAnchor.GetScript <VRController>(); } if (RightControllerAnchor == null) { RightControllerAnchor = ConfigureControllerAnchor(TrackingSpace, VRControllerRole.RightHand); RightController = RightControllerAnchor.GetScript <VRController>(); } if (LeftEyeCamera == null || RightEyeCamera == null || AttachedCamera == null) { LeftEyeCamera = LeftEyeAnchor.GetChild <Camera>(); if (LeftEyeCamera == null) { LeftEyeCamera = Camera.New(); LeftEyeAnchor.AddChild(LeftEyeCamera); } RightEyeCamera = RightEyeAnchor.GetChild <Camera>(); if (RightEyeCamera == null) { RightEyeCamera = Camera.New(); RightEyeAnchor.AddChild(RightEyeCamera); } AttachedCamera = CenterEyeAnchor.GetChild <Camera>(); if (AttachedCamera == null) { AttachedCamera = Camera.New(); CenterEyeAnchor.AddChild(AttachedCamera); } } vrControllers = Actor.GetScriptsRecursive <VRController>(); RefreshVRMode(); RefreshCameraProperties(); isInitialized = true; }