예제 #1
0
    /// <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);
    }
예제 #3
0
        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;
        }