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); } }
/// <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; } }