private Transform ConfigureEyeAnchor(Transform root, UnityEngine.VR.VRNode eye)
    {
        string    eyeName = (eye == UnityEngine.VR.VRNode.CenterEye) ? "Center" : (eye == UnityEngine.VR.VRNode.LeftEye) ? "Left" : "Right";
        string    name    = eyeName + eyeAnchorName;
        Transform anchor  = transform.Find(root.name + "/" + name);

        if (anchor == null)
        {
            anchor = transform.Find(name);
        }

        if (anchor == null)
        {
            string legacyName = legacyEyeAnchorName + eye.ToString();
            anchor = transform.Find(legacyName);
        }

        if (anchor == null)
        {
            anchor = new GameObject(name).transform;
        }

        anchor.name          = name;
        anchor.parent        = root;
        anchor.localScale    = Vector3.one;
        anchor.localPosition = Vector3.zero;
        anchor.localRotation = Quaternion.identity;

        return(anchor);
    }
Exemplo n.º 2
0
    private void ConfigureEyeDesc(UnityEngine.VR.VRNode eye)
    {
        if (!OVRManager.isHmdPresent)
        {
            return;
        }

        OVRPlugin.Sizei    size  = OVRPlugin.GetEyeTextureSize((OVRPlugin.Eye)eye);
        OVRPlugin.Frustumf frust = OVRPlugin.GetEyeFrustum((OVRPlugin.Eye)eye);

        eyeDescs[(int)eye] = new EyeRenderDesc()
        {
            resolution = new Vector2(size.w, size.h),
            fov        = Mathf.Rad2Deg * new Vector2(frust.fovX, frust.fovY),
        };
    }
Exemplo n.º 3
0
    /// <summary>
    /// Use this function to set texture and texNativePtr when app is running
    /// GetNativeTexturePtr is a slow behavior, the value should be pre-cached
    /// </summary>
    public void OverrideOverlayTextureInfo(Texture srcTexture, IntPtr nativePtr, UnityEngine.VR.VRNode node)
    {
        int index = (node == UnityEngine.VR.VRNode.RightEye) ? 1 : 0;

        if (textures.Length <= index)
        {
            return;
        }

        stageCount = 3;
        CreateLayerTextures(true, true, new OVRPlugin.Sizei()
        {
            w = srcTexture.width, h = srcTexture.height
        }, false);

        textures[index] = srcTexture;
        layerTextures[index].appTexture    = srcTexture;
        layerTextures[index].appTexturePtr = nativePtr;
    }
Exemplo n.º 4
0
 /// <summary>
 /// Gets the resolution and field of view for the given eye.
 /// </summary>
 public EyeRenderDesc GetEyeRenderDesc(UnityEngine.VR.VRNode eye)
 {
     return(eyeDescs[(int)eye]);
 }