Ejemplo n.º 1
0
    private void DrawAsteroids(ZEDManager manager)
    {
        Camera leftcamera  = manager.GetLeftCamera();
        Camera rightcamera = manager.GetRightCamera();

        //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,
                                   gameObject.layer,
                                   leftcamera);
        if (manager.IsStereoRig)
        {
            Graphics.DrawMeshInstanced(asteroidsType1.GetComponent <MeshFilter>().sharedMesh,
                                       0,
                                       asteroidsType1.GetComponent <MeshRenderer>().sharedMaterial,
                                       listPositions,
                                       listPositions.Length,
                                       null,
                                       UnityEngine.Rendering.ShadowCastingMode.Off,
                                       false,
                                       gameObject.layer,
                                       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,
                                   gameObject.layer,
                                   leftcamera);
        if (manager.IsStereoRig)
        {
            Graphics.DrawMeshInstanced(asteroidsType2.GetComponent <MeshFilter>().sharedMesh,
                                       0,
                                       asteroidsType2.GetComponent <MeshRenderer>().sharedMaterial,
                                       listPositions2,
                                       listPositions2.Length,
                                       null,
                                       UnityEngine.Rendering.ShadowCastingMode.Off,
                                       false,
                                       gameObject.layer,
                                       rightcamera);
        }
    }
Ejemplo n.º 2
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;

            //Set the target camera to whichever mono camera in the rig has the highest depth.
            Camera highestdepthzedcam = zedManager.GetLeftCamera();
            if (zedManager.GetRightCamera() != null && (highestdepthzedcam == null || zedManager.GetRightCamera().depth > highestdepthzedcam.depth))
            {
                highestdepthzedcam = zedManager.GetRightCamera();
            }

            warningmono.GetComponent <Canvas>().worldCamera = highestdepthzedcam;

            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.GetLeftCamera();
            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.GetRightCamera();
            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;
        }
    }