示例#1
0
 void Start()
 {
     if (XRSupportUtil.IsXRDevicePresent() &&
         XRSupportUtil.IsXREnabled() &&
         _deviceOffsets != null)
     {
         string deviceName       = XRSupportUtil.GetLoadedDeviceName();
         var    deviceHeightPair = _deviceOffsets.FirstOrDefault(d => deviceName.ToLower().Contains(d.DeviceName.ToLower()));
         if (deviceHeightPair != null)
         {
             transform.Translate(Vector3.up * deviceHeightPair.HeightOffset);
         }
     }
 }
示例#2
0
 private bool checkShouldEnableHeadMounted()
 {
     if (XRSupportUtil.IsXREnabled())
     {
         var parentCamera = GetComponentInParent <Camera>();
         if (parentCamera != null && parentCamera.stereoTargetEye != StereoTargetEyeMask.None)
         {
             if (!_isHeadMounted)
             {
                 if (Application.isPlaying)
                 {
                     Debug.LogError("VR is enabled and the LeapServiceProvider is the child of a "
                                    + "camera targeting one or both stereo eyes; You should "
                                    + "check the isHeadMounted option on the LeapServiceProvider "
                                    + "if the Leap is mounted or attached to your VR headset!",
                                    this);
                 }
                 return(true);
             }
         }
     }
     return(false);
 }
        private void createPortalCamera(LayerMask mask, out Camera camera, out List <int> layers)
        {
            if (_portalCameraAnchor == null)
            {
                var portalCameraObj = new GameObject("Portal Cameras");
                portalCameraObj.hideFlags = HideFlags.NotEditable;

                _portalCameraAnchor = portalCameraObj.transform;
                _portalCameraAnchor.transform.parent = _mainCamera.transform.parent;
                _portalCameraAnchor.SetSiblingIndex(_mainCamera.transform.GetSiblingIndex() + 1);
                _portalCameraAnchor.localPosition = Vector3.zero;
                _portalCameraAnchor.localRotation = Quaternion.identity;
                _portalCameraAnchor.localScale    = Vector3.one;
            }

            GameObject cameraObj = new GameObject("Portal Camera");//TODO: better naming

            cameraObj.hideFlags               = HideFlags.NotEditable;
            cameraObj.transform.parent        = _portalCameraAnchor;
            cameraObj.transform.localPosition = _mainCamera.transform.localPosition;
            cameraObj.transform.localRotation = _mainCamera.transform.localRotation;
            cameraObj.transform.localScale    = _mainCamera.transform.localScale;

            camera               = cameraObj.AddComponent <Camera>();
            camera.clearFlags    = CameraClearFlags.Nothing;
            camera.cullingMask   = mask;
            camera.nearClipPlane = _mainCamera.nearClipPlane;
            camera.farClipPlane  = _mainCamera.farClipPlane;
            camera.allowHDR      = _mainCamera.allowHDR;
            camera.allowMSAA     = _mainCamera.allowMSAA;
            if (!XRSupportUtil.IsXREnabled())
            {
                camera.fieldOfView = _mainCamera.fieldOfView;
            }

            layers = getLayersFromMask(mask);
        }