OVR grid cube.
Inheritance: MonoBehaviour
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        // Make sure to hide cursor
        if (Application.isEditor == false)
        {
#if UNITY_5
            Cursor.visible   = false;
            Cursor.lockState = CursorLockMode.Locked;
#else
            Screen.showCursor = false;
            Screen.lockCursor = true;
#endif
        }

        // CameraController updates
        if (cameraController != null)
        {
            // Add a GridCube component to this object
            gridCube = gameObject.AddComponent <OVRGridCube>();
            gridCube.SetOVRCameraController(ref cameraController);
        }
    }
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        // Make sure to hide cursor
        if (Application.isEditor == false)
        {
            Screen.showCursor = false;
            Screen.lockCursor = true;
        }

        // CameraController updates
        if (cameraController != null)
        {
            // Add a GridCube component to this object
            gridCube = gameObject.AddComponent <OVRGridCube>();
            gridCube.SetOVRCameraController(ref cameraController);

            debugInfo = gameObject.AddComponent <OVRDebugInfo>();
            if (playerController != null)
            {
                debugInfo.SetPlayerController(ref playerController);
            }
        }
    }
Example #3
0
    void Start()
    {
        AlphaFadeValue = 1.0f;
        CurrentLevel   = 0;
        PrevStartDown  = false;
        PrevHatDown    = false;
        PrevHatUp      = false;
        ShowVRVars	   = false;
        OldSpaceHit    = false;
        strFPS         = "FPS: 0";
        LoadingLevel   = false;
        ScenesVisible  = false;

        // Ensure that camera controller variables have been properly
        // initialized before we start reading them
        if(CameraController != null)
            CameraController.InitCameraControllerVariables();

        // Set the GUI target
        GUIRenderObject = GameObject.Instantiate(Resources.Load("OVRGUIObjectMain")) as GameObject;

        if(GUIRenderObject != null)
        {
            // Chnge the layer
            GUIRenderObject.layer = LayerMask.NameToLayer(LayerName);

            if(GUIRenderTexture == null)
            {
                int w = Screen.width;
                int h = Screen.height;

                // We don't need a depth buffer on this texture
                GUIRenderTexture = new RenderTexture(w, h, 0);
                GuiHelper.SetPixelResolution(w, h);
                // NOTE: All GUI elements are being written with pixel values based
                // from DK1 (1280x800). These should change to normalized locations so
                // that we can scale more cleanly with varying resolutions
                //GuiHelper.SetDisplayResolution(OVRDevice.HResolution,
                //								 OVRDevice.VResolution);
                GuiHelper.SetDisplayResolution(1280.0f, 800.0f);
            }
        }

        // Attach GUI texture to GUI object and GUI object to Camera
        if(GUIRenderTexture != null && GUIRenderObject != null)
        {
            GUIRenderObject.renderer.material.mainTexture = GUIRenderTexture;

            if(CameraController != null)
            {
                // Grab transform of GUI object
                Vector3 ls = GUIRenderObject.transform.localScale;
                Vector3 lp = GUIRenderObject.transform.localPosition;
                Quaternion lr = GUIRenderObject.transform.localRotation;

                // Attach the GUI object to the camera
                CameraController.AttachGameObjectToCamera(ref GUIRenderObject);
                // Reset the transform values (we will be maintaining state of the GUI object
                // in local state)

                GUIRenderObject.transform.localScale = ls;
                GUIRenderObject.transform.localRotation = lr;

                // Deactivate object until we have completed the fade-in
                // Also, we may want to deactive the render object if there is nothing being rendered
                // into the UI
                // we will move the position of everything over to account for the IPD camera offset.
                float ipdOffsetDirection = 1.0f;
                Transform guiParent = GUIRenderObject.transform.parent;
                if (guiParent != null)
                {
                    OVRCamera ovrCamera = guiParent.GetComponent<OVRCamera>();
                    if (ovrCamera != null && ovrCamera.RightEye)
                        ipdOffsetDirection = -1.0f;
                }

                float ipd = 0.0f;
                CameraController.GetIPD(ref ipd);
                //lp.x += ipd * 0.5f * ipdOffsetDirection;
                lp.x += ipd * 0.5f * ipdOffsetDirection;
                GUIRenderObject.transform.localPosition = lp;

                GUIRenderObject.SetActive(false);
            }
        }

        // Save default values initially
        StoreSnapshot("DEFAULT");

        // Make sure to hide cursor
        if(Application.isEditor == false)
        {
            Screen.showCursor = false;
            Screen.lockCursor = true;
        }

        // CameraController updates
        if(CameraController != null)
        {
            // Set LPM on by default
            OVRDevice.SetLowPersistenceMode(LowPersistenceMode);

            // Add a GridCube component to this object
            GridCube = gameObject.AddComponent<OVRGridCube>();
            GridCube.SetOVRCameraController(ref CameraController);

            // Add a VisionGuide component to this object
            VisionGuide = gameObject.AddComponent<OVRVisionGuide>();
            VisionGuide.SetOVRCameraController(ref CameraController);
            VisionGuide.SetFadeTexture(ref FadeInTexture);
            VisionGuide.SetVisionGuideLayer(ref LayerName);
        }

        // Crosshair functionality
        Crosshair.Init();
        Crosshair.SetCrosshairTexture(ref CrosshairImage);
        Crosshair.SetOVRCameraController (ref CameraController);
        Crosshair.SetOVRPlayerController(ref PlayerController);

        // Check for HMD and sensor
        CheckIfRiftPresent();
    }
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        // Make sure to hide cursor
        if (Application.isEditor == false)
        {
            Screen.showCursor = false;
            Screen.lockCursor = true;
        }

        // CameraController updates
        if (cameraController != null)
        {
            // Add a GridCube component to this object
            gridCube = gameObject.AddComponent<OVRGridCube>();
            gridCube.SetOVRCameraController(ref cameraController);

            debugInfo = gameObject.AddComponent<OVRDebugInfo>();
            if(playerController != null)
                debugInfo.SetPlayerController(ref playerController);
        }
    }
	/// <summary>
	/// Start this instance.
	/// </summary>
	void Start()
	{
		/* Make sure to hide cursor 
		if (Application.isEditor == false)
		{
			#if UNITY_5
			Cursor.visible = false; 
			Cursor.lockState = CursorLockMode.Locked;
			#else
			Screen.showCursor = false;
			Screen.lockCursor = true;
			#endif
		}*/

		// CameraController updates
		if (cameraController != null)
		{
			// Add a GridCube component to this object
			gridCube = gameObject.AddComponent<OVRGridCube>();
			gridCube.SetOVRCameraController(ref cameraController);
		} 
	}
Example #6
0
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        AlphaFadeValue = 1.0f;
        CurrentLevel   = 0;
        PrevStartDown  = false;
        PrevHatDown    = false;
        PrevHatUp      = false;
        ShowVRVars	   = false;
        OldSpaceHit    = false;
        strFPS         = "FPS: 0";
        LoadingLevel   = false;
        ScenesVisible  = false;

        // Set the GUI target
        GUIRenderObject = GameObject.Instantiate(Resources.Load("OVRGUIObjectMain")) as GameObject;

        if(GUIRenderObject != null)
        {
            // Chnge the layer
            GUIRenderObject.layer = LayerMask.NameToLayer(LayerName);

            if(GUIRenderTexture == null)
            {
                int w = Screen.width;
                int h = Screen.height;

                // We don't need a depth buffer on this texture
                GUIRenderTexture = new RenderTexture(w, h, 0);
                GuiHelper.SetPixelResolution(w, h);
                // NOTE: All GUI elements are being written with pixel values based
                // from DK1 (1280x800). These should change to normalized locations so
                // that we can scale more cleanly with varying resolutions
                GuiHelper.SetDisplayResolution(1280.0f, 800.0f);
            }
        }

        // Attach GUI texture to GUI object and GUI object to Camera
        if(GUIRenderTexture != null && GUIRenderObject != null)
        {
            GUIRenderObject.GetComponent<Renderer>().material.mainTexture = GUIRenderTexture;

            if(CameraController != null)
            {
                // Grab transform of GUI object
                Vector3 ls = GUIRenderObject.transform.localScale;
                Vector3 lp = GUIRenderObject.transform.localPosition;
                Quaternion lr = GUIRenderObject.transform.localRotation;

                // Attach the GUI object to the camera
                GUIRenderObject.transform.parent = CameraController.centerEyeAnchor;
                // Reset the transform values (we will be maintaining state of the GUI object
                // in local state)

                GUIRenderObject.transform.localScale = ls;
                GUIRenderObject.transform.localPosition = lp;
                GUIRenderObject.transform.localRotation = lr;

                // Deactivate object until we have completed the fade-in
                // Also, we may want to deactive the render object if there is nothing being rendered
                // into the UI
                GUIRenderObject.SetActive(false);
            }
        }

        // Make sure to hide cursor
        if(Application.isEditor == false)
        {
        #if UNITY_5_0
            Cursor.visible = false;
            Cursor.lockState = CursorLockMode.Locked;
        #else
            Screen.showCursor = false;
            Screen.lockCursor = true;
        #endif
        }

        // CameraController updates
        if(CameraController != null)
        {
            // Add a GridCube component to this object
            GridCube = gameObject.AddComponent<OVRGridCube>();
            GridCube.SetOVRCameraController(ref CameraController);

            // Add a VisionGuide component to this object
            VisionGuide = gameObject.AddComponent<OVRVisionGuide>();
            VisionGuide.SetOVRCameraController(ref CameraController);
            VisionGuide.SetFadeTexture(ref FadeInTexture);
            VisionGuide.SetVisionGuideLayer(ref LayerName);
        }

        // Crosshair functionality
        Crosshair.Init();
        Crosshair.SetCrosshairTexture(ref CrosshairImage);
        Crosshair.SetOVRCameraController (ref CameraController);
        Crosshair.SetOVRPlayerController(ref PlayerController);

        // Check for HMD and sensor
        CheckIfRiftPresent();

        #if USE_NEW_GUI
        if (!string.IsNullOrEmpty(strRiftPresent)){
            ShowRiftPresentGUI();
        }
        #endif
    }
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        AlphaFadeValue = 1.0f;
        CurrentLevel   = 0;
        PrevStartDown  = false;
        PrevHatDown    = false;
        PrevHatUp      = false;
        ShowVRVars	   = false;
        OldSpaceHit    = false;
        strFPS         = "FPS: 0";
        LoadingLevel   = false;
        ScenesVisible  = false;

        // Ensure that camera controller variables have been properly
        // initialized before we start reading them
        if(CameraController != null)
            CameraController.InitCameraControllerVariables();

        // Set the GUI target
        GUIRenderObject = GameObject.Instantiate(Resources.Load("OVRGUIObjectMain")) as GameObject;

        if(GUIRenderObject != null)
        {
            // Chnge the layer
            GUIRenderObject.layer = LayerMask.NameToLayer(LayerName);

            if(GUIRenderTexture == null)
            {
                int w = Screen.width;
                int h = Screen.height;

                // We don't need a depth buffer on this texture
                GUIRenderTexture = new RenderTexture(w, h, 0);
                GuiHelper.SetPixelResolution(w, h);
                // NOTE: All GUI elements are being written with pixel values based
                // from DK1 (1280x800). These should change to normalized locations so
                // that we can scale more cleanly with varying resolutions
                //GuiHelper.SetDisplayResolution(OVRDevice.HResolution,
                //								 OVRDevice.VResolution);
                GuiHelper.SetDisplayResolution(1280.0f, 800.0f);
            }
        }

        // Attach GUI texture to GUI object and GUI object to Camera
        if(GUIRenderTexture != null && GUIRenderObject != null)
        {
            GUIRenderObject.renderer.material.mainTexture = GUIRenderTexture;

            if(CameraController != null)
            {
                // Grab transform of GUI object
                Vector3 ls = GUIRenderObject.transform.localScale;
                Vector3 lp = GUIRenderObject.transform.localPosition;
                Quaternion lr = GUIRenderObject.transform.localRotation;

                // Attach the GUI object to the camera
                CameraController.AttachGameObjectToCamera(ref GUIRenderObject);
                // Reset the transform values (we will be maintaining state of the GUI object
                // in local state)

                GUIRenderObject.transform.localScale = ls;
                GUIRenderObject.transform.localRotation = lr;

                // Deactivate object until we have completed the fade-in
                // Also, we may want to deactive the render object if there is nothing being rendered
                // into the UI
                // we will move the position of everything over to the left, so get
                // IPD / 2 and position camera towards negative X
                float   ipd = 0.0f;
                CameraController.GetIPD(ref ipd);
                lp.x -= ipd * 0.5f;
                GUIRenderObject.transform.localPosition = lp;

                GUIRenderObject.SetActive(false);
            }
        }

        // Save default values initially
        StoreSnapshot("DEFAULT");

        // Make sure to hide cursor
        if(Application.isEditor == false)
        {
            Screen.showCursor = false;
            Screen.lockCursor = true;
        }

        // Add delegates to update; useful for ordering menu tasks, if required
        UpdateFunctions += UpdateFPS;

        // CameraController updates
        if(CameraController != null)
        {
            UpdateFunctions += UpdateIPD;
            UpdateFunctions += UpdatePrediction;

            // Set LPM on by default
            UpdateFunctions += UpdateLowPersistenceMode;
            OVRDevice.SetLowPersistenceMode(LowPersistenceMode);
            UpdateFunctions += UpdateVisionMode;
            UpdateFunctions += UpdateFOV;
            UpdateFunctions += UpdateEyeHeightOffset;

            // Add a GridCube component to this object
            GridCube = gameObject.AddComponent<OVRGridCube>();
            GridCube.SetOVRCameraController(ref CameraController);

            // Add a VisionGuide component to this object
            /*VisionGuide = gameObject.AddComponent<OVRVisionGuide>();
            VisionGuide.SetOVRCameraController(ref CameraController);
            VisionGuide.SetFadeTexture(ref FadeInTexture);
            VisionGuide.SetVisionGuideLayer(ref LayerName);*/
        }

        // PlayerController updates
        if(PlayerController != null)
        {
            UpdateFunctions += UpdateSpeedAndRotationScaleMultiplier;
            UpdateFunctions += UpdatePlayerControllerMovement;
        }

        // MainMenu updates
        UpdateFunctions += UpdateSelectCurrentLevel;
        UpdateFunctions += UpdateHandleSnapshots;

        // Device updates
        UpdateFunctions += UpdateDeviceDetection;

        // Add a callback to detect device detection
        OVRMessenger.AddListener<Device, bool>("Sensor_Attached", UpdateDeviceDetectionMsgCallback);

        // Mag Yaw-Drift correction
        // We will test to see if we are already calibrated by the
        // Calibration tool
        MagCal.SetInitialCalibarationState();
        UpdateFunctions += MagCal.UpdateMagYawDriftCorrection;
        MagCal.SetOVRCameraController(ref CameraController);

        // Crosshair functionality
        Crosshair.Init();
        Crosshair.SetCrosshairTexture(ref CrosshairImage);
        Crosshair.SetOVRCameraController (ref CameraController);
        Crosshair.SetOVRPlayerController(ref PlayerController);
        UpdateFunctions += Crosshair.UpdateCrosshair;

        // Check for HMD and sensor
        CheckIfRiftPresent();

        // Reset tracker position.
        // We assume that the CameraController is at the desired neck location
        Vector3 eyeOffset = Vector3.zero;

        if(CameraController != null)
            CameraController.GetEyeCenterPosition(ref eyeOffset);

        OVRCamera.ResetCameraPositionOrientation(ref eyeOffset, true, false, false);
    }
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        AlphaFadeValue = 1.0f;
        CurrentLevel   = 0;
        PrevStartDown  = false;
        PrevHatDown    = false;
        PrevHatUp      = false;
        ShowVRVars     = false;
        OldSpaceHit    = false;
        strFPS         = "FPS: 0";
        LoadingLevel   = false;
        ScenesVisible  = false;

        // Ensure that camera controller variables have been properly
        // initialized before we start reading them
        if (CameraController != null)
        {
            CameraController.InitCameraControllerVariables();
        }

        // Set the GUI target
        GUIRenderObject = GameObject.Instantiate(Resources.Load("OVRGUIObjectMain")) as GameObject;

        if (GUIRenderObject != null)
        {
            // Chnge the layer
            GUIRenderObject.layer = LayerMask.NameToLayer(LayerName);

            if (GUIRenderTexture == null)
            {
                int w = Screen.width;
                int h = Screen.height;

                // We don't need a depth buffer on this texture
                GUIRenderTexture = new RenderTexture(w, h, 0);
                GuiHelper.SetPixelResolution(w, h);
                // NOTE: All GUI elements are being written with pixel values based
                // from DK1 (1280x800). These should change to normalized locations so
                // that we can scale more cleanly with varying resolutions
                //GuiHelper.SetDisplayResolution(OVRDevice.HResolution,
                //								 OVRDevice.VResolution);
                GuiHelper.SetDisplayResolution(1280.0f, 800.0f);
            }
        }

        // Attach GUI texture to GUI object and GUI object to Camera
        if (GUIRenderTexture != null && GUIRenderObject != null)
        {
            GUIRenderObject.renderer.material.mainTexture = GUIRenderTexture;

            if (CameraController != null)
            {
                // Grab transform of GUI object
                Transform t = GUIRenderObject.transform;
                // Attach the GUI object to the camera
                CameraController.AttachGameObjectToCamera(ref GUIRenderObject);
                // Reset the transform values (we will be maintaining state of the GUI object
                // in local state)
                OVRUtils.SetLocalTransform(ref GUIRenderObject, ref t);
                // Deactivate object until we have completed the fade-in
                // Also, we may want to deactive the render object if there is nothing being rendered
                // into the UI
                // we will move the position of everything over to the left, so get
                // IPD / 2 and position camera towards negative X
                Vector3 lp  = GUIRenderObject.transform.localPosition;
                float   ipd = 0.0f;
                CameraController.GetIPD(ref ipd);
                lp.x -= ipd * 0.5f;
                GUIRenderObject.transform.localPosition = lp;

                GUIRenderObject.SetActive(false);
            }
        }

        // Save default values initially
        StoreSnapshot("DEFAULT");

        // Make sure to hide cursor
        if (Application.isEditor == false)
        {
            Screen.showCursor = false;
            Screen.lockCursor = true;
        }

        // Add delegates to update; useful for ordering menu tasks, if required
        UpdateFunctions += UpdateFPS;

        // CameraController updates
        if (CameraController != null)
        {
            UpdateFunctions += UpdateIPD;
            UpdateFunctions += UpdatePrediction;
            // Set LPM on by default
            UpdateFunctions += UpdateLowPersistanceMode;
            OVRDevice.SetLowPersistanceMode(LowPersistanceMode);
            UpdateFunctions += UpdateVisionMode;
            UpdateFunctions += UpdateFOV;
            UpdateFunctions += UpdateEyeHeightOffset;

            // Add a GridCube component to this object
            GridCube = gameObject.AddComponent <OVRGridCube>();
            GridCube.SetOVRCameraController(ref CameraController);

            // Add a VisionGuide component to this object
            VisionGuide = gameObject.AddComponent <OVRVisionGuide>();
            VisionGuide.SetOVRCameraController(ref CameraController);
            VisionGuide.SetFadeTexture(ref FadeInTexture);
            VisionGuide.SetVisionGuideLayer(ref LayerName);
        }

        // PlayerController updates
        if (PlayerController != null)
        {
            UpdateFunctions += UpdateSpeedAndRotationScaleMultiplier;
            UpdateFunctions += UpdatePlayerControllerMovement;
        }

        // MainMenu updates
        UpdateFunctions += UpdateSelectCurrentLevel;
        UpdateFunctions += UpdateHandleSnapshots;

        // Device updates
        UpdateFunctions += UpdateDeviceDetection;

        // Add a callback to detect device detection
        OVRMessenger.AddListener <Device, bool>("Sensor_Attached", UpdateDeviceDetectionMsgCallback);

        // Mag Yaw-Drift correction
        // We will test to see if we are already calibrated by the
        // Calibration tool
        MagCal.SetInitialCalibarationState();
        UpdateFunctions += MagCal.UpdateMagYawDriftCorrection;
        MagCal.SetOVRCameraController(ref CameraController);

        // Crosshair functionality
        Crosshair.Init();
        Crosshair.SetCrosshairTexture(ref CrosshairImage);
        Crosshair.SetOVRCameraController(ref CameraController);
        Crosshair.SetOVRPlayerController(ref PlayerController);
        UpdateFunctions += Crosshair.UpdateCrosshair;

        // Check for HMD and sensor
        CheckIfRiftPresent();

        // Reset tracker position.
        // We assume that the CameraController is at the desired neck location
        Vector3 eyeOffset = Vector3.zero;

        if (CameraController != null)
        {
            CameraController.GetEyeCenterPosition(ref eyeOffset);
        }

        OVRCamera.ResetCameraPositionOrientation(ref eyeOffset, true, false, false);
    }
    void Start()
    {
        AlphaFadeValue = 1.0f;
        CurrentLevel   = 0;
        PrevStartDown  = false;
        PrevHatDown    = false;
        PrevHatUp      = false;
        ShowVRVars     = false;
        OldOpenMenu    = false;
        strFPS         = "FPS: 0";
        LoadingLevel   = false;
        ScenesVisible  = false;

        // Ensure that camera controller variables have been properly
        // initialized before we start reading them
        if (CameraController != null)
        {
            CameraController.InitCameraControllerVariables();
        }

        // Set the GUI target
        GUIRenderObject = GameObject.Instantiate(Resources.Load("OVRGUIObjectMain")) as GameObject;

        if (GUIRenderObject != null)
        {
            // Chnge the layer
            GUIRenderObject.layer = LayerMask.NameToLayer(LayerName);

            if (GUIRenderTexture == null)
            {
                int w = Screen.width;
                int h = Screen.height;

                // We don't need a depth buffer on this texture
                GUIRenderTexture = new RenderTexture(w, h, 0);
                GuiHelper.SetPixelResolution(w, h);
                // NOTE: All GUI elements are being written with pixel values based
                // from DK1 (1280x800). These should change to normalized locations so
                // that we can scale more cleanly with varying resolutions
                //GuiHelper.SetDisplayResolution(OVRDevice.HResolution,
                //								 OVRDevice.VResolution);
                GuiHelper.SetDisplayResolution(1280.0f, 800.0f);
            }
        }

        // Attach GUI texture to GUI object and GUI object to Camera
        if (GUIRenderTexture != null && GUIRenderObject != null)
        {
            GUIRenderObject.renderer.material.mainTexture = GUIRenderTexture;

            if (CameraController != null)
            {
                // Grab transform of GUI object
                Vector3    ls = GUIRenderObject.transform.localScale;
                Vector3    lp = GUIRenderObject.transform.localPosition;
                Quaternion lr = GUIRenderObject.transform.localRotation;

                // Attach the GUI object to the camera
                CameraController.AttachGameObjectToCamera(ref GUIRenderObject);
                // Reset the transform values (we will be maintaining state of the GUI object
                // in local state)

                GUIRenderObject.transform.localScale    = ls;
                GUIRenderObject.transform.localRotation = lr;

                // Deactivate object until we have completed the fade-in
                // Also, we may want to deactive the render object if there is nothing being rendered
                // into the UI
                // we will move the position of everything over to account for the IPD camera offset.
                float     ipdOffsetDirection = 1.0f;
                Transform guiParent          = GUIRenderObject.transform.parent;
                if (guiParent != null)
                {
                    OVRCamera ovrCamera = guiParent.GetComponent <OVRCamera>();
                    if (ovrCamera != null && ovrCamera.RightEye)
                    {
                        ipdOffsetDirection = -1.0f;
                    }
                }

                float ipd = 0.0f;
                CameraController.GetIPD(ref ipd);
                lp.x += ipd * 0.5f * ipdOffsetDirection;
                GUIRenderObject.transform.localPosition = lp;

                GUIRenderObject.SetActive(false);
            }
        }

        // Save default values initially
        //StoreSnapshot("DEFAULT");

        // Make sure to hide cursor
        if (Application.isEditor == false)
        {
            Screen.showCursor = false;
            Screen.lockCursor = true;
        }

        // CameraController updates
        if (CameraController != null)
        {
            // Set LPM on by default
            OVRDevice.SetLowPersistenceMode(LowPersistenceMode);

            // Add a GridCube component to this object
            GridCube = gameObject.AddComponent <OVRGridCube>();
            GridCube.SetOVRCameraController(ref CameraController);

            // Add a VisionGuide component to this object
            VisionGuide = gameObject.AddComponent <OVRVisionGuide>();
            VisionGuide.SetOVRCameraController(ref CameraController);
            VisionGuide.SetFadeTexture(ref FadeInTexture);
            VisionGuide.SetVisionGuideLayer(ref LayerName);
        }

        // Crosshair functionality
        Crosshair.Init();
        Crosshair.SetCrosshairTexture(ref CrosshairImage);
        Crosshair.SetOVRCameraController(ref CameraController);
        Crosshair.SetOVRPlayerController(ref PlayerController);

        // Check for HMD and sensor
        CheckIfRiftPresent();
    }
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        // Make sure to hide cursor 
        if (Application.isEditor == false)
        {
#if UNITY_5_0 || UNITY_5_1
			Cursor.visible = false; 
			Cursor.lockState = CursorLockMode.Locked;
#else
            Cursor.visible = false;
            Screen.lockCursor = true;
#endif
        }

        // CameraController updates
        if (cameraController != null)
        {
            // Add a GridCube component to this object
            gridCube = gameObject.AddComponent<OVRGridCube>();
            gridCube.SetOVRCameraController(ref cameraController);

            debugInfo = gameObject.AddComponent<OVRDebugInfo>();
            if(playerController != null)
                debugInfo.SetPlayerController(ref playerController);
        } 
    }
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        // Make sure to hide cursor
        if (Application.isEditor == false)
        {
            Cursor.visible = false;
            Cursor.lockState = CursorLockMode.Locked;
        }

        // CameraController updates
        if (cameraController != null)
        {
            // Add a GridCube component to this object
            gridCube = gameObject.AddComponent<OVRGridCube>();
            gridCube.SetOVRCameraController(ref cameraController);
        }
    }