Ejemplo n.º 1
0
    /// <summary>
    /// Creates canvas(es) and canvas elements depending on whether the ZED rig is mono (ZED_Rig_Mono)
    /// or stereo (ZED_Rig_Stereo).
    /// </summary>
    private void Awake()
    {
        zedManager    = GetComponent <ZEDManager> ();
        oldInitStatus = sl.ERROR_CODE.ERROR_CODE_LAST;
        if (!zedManager.IsStereoRig)         //Without VR, we use a Screen Space - Overlay canvas.
        {
            //Instantiate the mono warning prefab and set basic settings for it.
            warningmono = Instantiate(Resources.Load("PrefabsUI/Warning") as GameObject, transform);
            warningmono.SetActive(true);
            warningmono.GetComponent <Canvas> ().renderMode  = RenderMode.ScreenSpaceCamera;
            warningmono.GetComponent <Canvas> ().worldCamera = zedManager.GetLeftCameraTransform().GetComponent <Camera>();

            textmono       = warningmono.GetComponentInChildren <UnityEngine.UI.Text>();
            textmono.color = Color.white;

            if (!sl.ZEDCamera.CheckPlugin())
            {
                textmono.text = ZEDLogMessage.Error2Str(ZEDLogMessage.ERROR.SDK_NOT_INSTALLED);
            }
            imagemono = warningmono.transform.GetChild(0).GetChild(1).gameObject;
            imagemono.transform.parent.gameObject.SetActive(true);
            ready = false;
        }
        else //In VR, we use two Screen Space - Camera canvases, one for each eye.
        {
            //Instantiate the left warning prefab and set basic settings for it.
            warningleft = Instantiate(Resources.Load("PrefabsUI/Warning_VR") as GameObject, zedManager.GetLeftCameraTransform());
            warningleft.SetActive(true);
            warningleft.GetComponent <Canvas>().worldCamera   = zedManager.GetLeftCameraTransform().GetComponent <Camera>();
            warningleft.GetComponent <Canvas>().planeDistance = 1;
            textleft       = warningleft.GetComponentInChildren <UnityEngine.UI.Text>();
            textleft.color = Color.white;
            imageleft      = warningleft.transform.GetChild(0).GetChild(1).gameObject;
            imageleft.transform.parent.gameObject.SetActive(true);

            //Instantiate the right warning prefab and set basic settings for it.
            warningright = Instantiate(Resources.Load("PrefabsUI/Warning_VR") as GameObject, zedManager.GetRightCameraTransform());
            warningright.SetActive(true);
            warningright.GetComponent <Canvas>().worldCamera   = zedManager.GetRightCameraTransform().GetComponent <Camera>();
            warningright.GetComponent <Canvas>().planeDistance = 1;
            textright       = warningright.GetComponentInChildren <UnityEngine.UI.Text>();
            textright.color = Color.white;
            imageright      = warningright.transform.GetChild(0).GetChild(1).gameObject;
            imageright.transform.parent.gameObject.SetActive(true);

            if (!sl.ZEDCamera.CheckPlugin()) //Warn the use there's no SDK installed.
            {
                textleft.text  = ZEDLogMessage.Error2Str(ZEDLogMessage.ERROR.SDK_NOT_INSTALLED);
                textright.text = ZEDLogMessage.Error2Str(ZEDLogMessage.ERROR.SDK_NOT_INSTALLED);
            }

            ready = false;
        }
    }
Ejemplo n.º 2
0
 /// <summary>
 /// Set the plane renderer to the cameras. Is necessary to see the planes
 /// </summary>
 public void SetPlaneRenderer()
 {
     if (manager != null)
     {
         Transform left = manager.GetLeftCameraTransform();
         if (left != null)
         {
             meshRenderer[0] = left.gameObject.GetComponent <ZEDPlaneRenderer>();
             if (!meshRenderer[0])
             {
                 meshRenderer[0] = left.gameObject.AddComponent <ZEDPlaneRenderer>();
             }
         }
         Transform right = manager.GetRightCameraTransform();
         if (right != null)
         {
             meshRenderer[1] = right.gameObject.GetComponent <ZEDPlaneRenderer>();
             if (!meshRenderer[1])
             {
                 meshRenderer[1] = right.gameObject.AddComponent <ZEDPlaneRenderer>();
             }
         }
     }
 }
Ejemplo n.º 3
0
 // Update is called once per frame
 void Update()
 {
     if (leftCamera == null)
     {
         if (manager)
         {
             leftCamera = manager.GetLeftCameraTransform().GetComponent <Camera>();
         }
     }
     if (rightCamera == null && ZEDManager.IsStereoRig)
     {
         if (manager)
         {
             rightCamera = manager.GetRightCameraTransform().GetComponent <Camera>();
         }
     }
     //Update positions and draw asteroids of type 1
     UpdatePosition(listPositionsOrigin, listPositions);
     Graphics.DrawMeshInstanced(asteroidsType1.GetComponent <MeshFilter>().sharedMesh,
                                0, asteroidsType1.GetComponent <MeshRenderer>().sharedMaterial,
                                listPositions,
                                listPositions.Length,
                                null,
                                UnityEngine.Rendering.ShadowCastingMode.Off,
                                false,
                                8,
                                leftCamera);
     if (ZEDManager.IsStereoRig)
     {
         Graphics.DrawMeshInstanced(asteroidsType1.GetComponent <MeshFilter>().sharedMesh,
                                    0,
                                    asteroidsType1.GetComponent <MeshRenderer>().sharedMaterial,
                                    listPositions,
                                    listPositions.Length,
                                    null,
                                    UnityEngine.Rendering.ShadowCastingMode.Off,
                                    false,
                                    10,
                                    rightCamera);
     }
     //Update positions and draw asteroids of type 2
     UpdatePosition(listPositionsOrigin2, listPositions2);
     Graphics.DrawMeshInstanced(asteroidsType2.GetComponent <MeshFilter>().sharedMesh,
                                0,
                                asteroidsType2.GetComponent <MeshRenderer>().sharedMaterial,
                                listPositions2,
                                listPositions2.Length,
                                null,
                                UnityEngine.Rendering.ShadowCastingMode.Off,
                                false,
                                8,
                                leftCamera);
     if (ZEDManager.IsStereoRig)
     {
         Graphics.DrawMeshInstanced(asteroidsType2.GetComponent <MeshFilter>().sharedMesh,
                                    0,
                                    asteroidsType2.GetComponent <MeshRenderer>().sharedMaterial,
                                    listPositions2,
                                    listPositions2.Length,
                                    null,
                                    UnityEngine.Rendering.ShadowCastingMode.Off,
                                    false,
                                    10,
                                    rightCamera);
     }
 }