예제 #1
0
    public bool InitUnitySDK6DofSensor()
    {
        bool enable = false;

#if !UNITY_EDITOR
        try
        {
            int ability6dof = 0;
            int enumindex   = (int)Pvr_UnitySDKAPI.GlobalIntConfigs.ABILITY6DOF;
            Pvr_UnitySDKAPI.Render.UPvr_GetIntConfig(enumindex, ref ability6dof);
            if (ability6dof == 1)
            {
                if (Pvr_UnitySDKAPI.Sensor.UPvr_Enable6DofModule(!Pvr_UnitySDKManager.SDK.HmdOnlyrot) == 0)
                {
                    if (!Pvr_UnitySDKManager.SDK.HmdOnlyrot)
                    {
                        enable = true;
                        Pvr_UnitySDKManager.SDK.PVRNeck = false;
                    }
                }
            }
            else
            {
                Debug.LogWarning("This platform does not support 6 Dof !");
            }
        }
        catch (System.Exception e)
        {
            PLOG.E("InitUnity6DofSDKSensor ERROR! " + e.Message);
            throw;
        }
#endif
        return(enable);
    }
예제 #2
0
    public Vector3 GetEyeTrackingPos()
    {
        if (!Pvr_UnitySDKEyeManager.Instance.EyeTracking)
        {
            return(Vector3.zero);
        }

        bool result = Pvr_UnitySDKAPI.System.UPvr_getEyeTrackingData(ref eyePoseData);

        if (!result)
        {
            PLOG.E("UPvr_getEyeTrackingData failed " + result);
            return(Vector3.zero);
        }

        EyeDeviceInfo info        = GetDeviceInfo();
        Vector3       frustumSize = Vector3.zero;

        frustumSize.x = 0.5f * (info.targetFrustumLeft.right - info.targetFrustumLeft.left);
        frustumSize.y = 0.5f * (info.targetFrustumLeft.top - info.targetFrustumLeft.bottom);
        frustumSize.z = info.targetFrustumLeft.near;

        var   combinedDirection = eyePoseData.foveatedGazeDirection;
        float denominator       = Vector3.Dot(combinedDirection, Vector3.forward);

        if (denominator > float.Epsilon)
        {
            eyePoint    = combinedDirection * (frustumSize.z / denominator);
            eyePoint.x /= frustumSize.x; // [-1..1]
            eyePoint.y /= frustumSize.y; // [-1..1]
        }
        return(eyePoint);
    }
    private bool CreateEyeBuffer()
    {
        Vector2 resolution = GetEyeBufferResolution();

        Pvr_UnitySDKAPI.System.UPvr_SetSinglePassDepthBufferWidthHeight((int)resolution.x, (int)resolution.y);
        Pvr_UnitySDKManager.SDK.eyeTextures = new RenderTexture[Pvr_UnitySDKManager.eyeTextureCount];

        // eye buffer
        for (int i = 0; i < Pvr_UnitySDKManager.eyeTextureCount; i++)
        {
            if (null == Pvr_UnitySDKManager.SDK.eyeTextures[i])
            {
                try
                {
                    ConfigureEyeBuffer(i, resolution);
                }
                catch (Exception e)
                {
                    PLOG.E("ConfigureEyeBuffer ERROR " + e.Message);
                    throw;
                }
            }

            if (!Pvr_UnitySDKManager.SDK.eyeTextures[i].IsCreated())
            {
                Pvr_UnitySDKManager.SDK.eyeTextures[i].Create();
                Pvr_UnitySDKManager.SDK.eyeTextureIds[i] = Pvr_UnitySDKManager.SDK.eyeTextures[i].GetNativeTexturePtr().ToInt32();
            }
            Pvr_UnitySDKManager.SDK.eyeTextureIds[i] = Pvr_UnitySDKManager.SDK.eyeTextures[i].GetNativeTexturePtr().ToInt32();
        }
        return(true);
    }
    public void SetEyesPosition()
    {
        float separation = 0.0625f;
        int   enumindex  = (int)Pvr_UnitySDKAPI.GlobalFloatConfigs.IPD;

        if (0 != Pvr_UnitySDKAPI.Render.UPvr_GetFloatConfig(enumindex, ref separation))
        {
            PLOG.E("Cannot get ipd");
            separation = 0.0625f;
        }
        bothCamera.stereoSeparation = separation;
        Vector3 l      = new Vector3(-separation / 2.0f, 0f, 0f);
        Vector3 r      = new Vector3(separation / 2.0f, 0f, 0f);
        Vector3 center = (l + r) / 2.0f;

        bothCamera.transform.localPosition = center;
        bothCamera.transform.localRotation = Quaternion.identity;

        Vector3 left  = l - center;
        Vector3 right = r - center;

        eyesOffset[0]       = left;
        eyesOffset[1]       = right;
        eyesOffsetMatrix[0] = Matrix4x4.TRS(left, Quaternion.identity, Vector3.one);
        eyesOffsetMatrix[1] = Matrix4x4.TRS(right, Quaternion.identity, Vector3.one);
    }
예제 #5
0
    public static Vector2 GetEyeBufferResolution()
    {
        Vector2 eyeBufferResolution;
        int     w = 1024;
        int     h = 1024;

        if (Pvr_UnitySDKManager.SDK.DefaultRenderTexture)
        {
            try
            {
                int enumindex = (int)Pvr_UnitySDKAPI.GlobalIntConfigs.EYE_TEXTURE_RESOLUTION0;
                Pvr_UnitySDKAPI.Render.UPvr_GetIntConfig(enumindex, ref w);
                enumindex = (int)Pvr_UnitySDKAPI.GlobalIntConfigs.EYE_TEXTURE_RESOLUTION1;
                Pvr_UnitySDKAPI.Render.UPvr_GetIntConfig(enumindex, ref h);
            }
            catch (System.Exception e)
            {
                PLOG.E("GetEyeBufferResolution ERROR! " + e.Message);
                throw;
            }
        }
        else
        {
            w = (int)(Pvr_UnitySDKManager.SDK.RtSize.x * Pvr_UnitySDKManager.SDK.RtScaleFactor);
            h = (int)(Pvr_UnitySDKManager.SDK.RtSize.y * Pvr_UnitySDKManager.SDK.RtScaleFactor);
        }

        eyeBufferResolution = new Vector2(w, h);
        Debug.Log("eyeBufferResolution:" + eyeBufferResolution + ", scaleFactor: " + Pvr_UnitySDKManager.SDK.RtScaleFactor);

        return(eyeBufferResolution);
    }
        public static bool UPvr_InitBatteryClass()
        {
#if ANDROID_DEVICE
            try
            {
                if (javaSysActivityClass == null)
                {
                    javaSysActivityClass = new UnityEngine.AndroidJavaClass("com.psmart.aosoperation.SysActivity");
                }

                if (javaSysActivityClass != null && Pvr_UnitySDKManager.pvr_UnitySDKRender.activity != null)
                {
                    if (batteryjavaVrActivityClass == null)
                    {
                        batteryjavaVrActivityClass = new UnityEngine.AndroidJavaClass("com.psmart.aosoperation.BatteryReceiver");
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                PLOG.E("startReceiver Error :" + e.ToString());
                return(false);
            }
#endif
            return(true);
        }
예제 #7
0
    public Vector2 GetEyeBufferResolution()
    {
        Vector2 eyeBufferResolution;
        int     w = 1024;
        int     h = 1024;

        if (Pvr_UnitySDKProjectSetting.GetProjectConfig().usedefaultRenderTexture)
        {
            try
            {
                int enumindex = (int)Pvr_UnitySDKAPI.GlobalIntConfigs.EYE_TEXTURE_RESOLUTION0;
                Pvr_UnitySDKAPI.Render.UPvr_GetIntConfig(enumindex, ref w);
                enumindex = (int)Pvr_UnitySDKAPI.GlobalIntConfigs.EYE_TEXTURE_RESOLUTION1;
                Pvr_UnitySDKAPI.Render.UPvr_GetIntConfig(enumindex, ref h);
            }
            catch (System.Exception e)
            {
                PLOG.E("GetEyeBufferResolution ERROR! " + e.Message);
                throw;
            }
        }
        else
        {
            w = (int)(Pvr_UnitySDKProjectSetting.GetProjectConfig().customRTSize.x *RtScaleFactor);
            h = (int)(Pvr_UnitySDKProjectSetting.GetProjectConfig().customRTSize.y *RtScaleFactor);
        }

        eyeBufferResolution = new Vector2(w, h);
        Debug.Log("DISFT Customize RenderTexture:" + eyeBufferResolution + ", scaleFactor: " + RtScaleFactor);

        return(eyeBufferResolution);
    }
        public static bool UPvr_InitBatteryVolClass()
        {
#if ANDROID_DEVICE
            try
            {
                javaSysActivityClass = new UnityEngine.AndroidJavaClass("com.psmart.aosoperation.SysActivity");
                if (javaSysActivityClass != null && Pvr_UnitySDKManager.pvr_UnitySDKRender.activity != null)
                {
                    batteryjavaVrActivityClass = new UnityEngine.AndroidJavaClass("com.psmart.aosoperation.BatteryReceiver");
                    volumejavaVrActivityClass  = new AndroidJavaClass("com.psmart.aosoperation.AudioReceiver");

                    Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(javaSysActivityClass, "Pvr_InitAudioDevice", Pvr_UnitySDKManager.pvr_UnitySDKRender.activity);
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                PLOG.E("startReceiver Error :" + e.ToString());
                return(false);
            }
#endif
            return(true);
        }
 public void VolumeDown()
 {
     bool enable = false;
     enable = Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_VolumeDown();
     if (!enable)
     {
         PLOG.E("VolumeDown Error");
     }
 }
예제 #10
0
    private void StartHummingBirdService()
    {
#if ANDROID_DEVICE
        try
        {
            UnityEngine.AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            activity             = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity");
            javaHummingbirdClass = new AndroidJavaClass("com.picovr.picovrlib.hummingbirdclient.HbClientActivity");
            javaCVClass          = new AndroidJavaClass("com.picovr.picovrlib.cvcontrollerclient.ControllerClient");
            javavractivityclass  = new UnityEngine.AndroidJavaClass("com.psmart.vrlib.VrActivity");
            javaserviceClass     = new AndroidJavaClass("com.picovr.picovrlib.hummingbirdclient.UnityClient");
            Pvr_UnitySDKAPI.System.Pvr_SetInitActivity(activity.GetRawObject(), javaHummingbirdClass.GetRawClass());
            int enumindex = (int)GlobalIntConfigs.PLATFORM_TYPE;
            Render.UPvr_GetIntConfig(enumindex, ref platFormType);
            Debug.Log("PvrLog platform" + platFormType);
            enumindex = (int)GlobalIntConfigs.TRACKING_MODE;
            Render.UPvr_GetIntConfig(enumindex, ref trackingmode);
            Debug.Log("PvrLog trackingmode" + trackingmode);
            systemProp = GetSysproc();
            Debug.Log("PvrLog systemProp" + systemProp);
            enumindex = (int)GlobalIntConfigs.ENBLE_HAND6DOF_BY_HEAD;
            Render.UPvr_GetIntConfig(enumindex, ref enablehand6dofbyhead);
            Debug.Log("PvrLog enablehand6dofbyhead" + enablehand6dofbyhead);
            if (trackingmode == 0 || trackingmode == 1 || (trackingmode == 3 || trackingmode == 5 || trackingmode == 6) && (systemProp == 1 || systemProp == 3))
            {
                picoDevice             = platFormType != 0;
                javaPico2ReceiverClass = new UnityEngine.AndroidJavaClass("com.picovr.picovrlib.hummingbirdclient.HbClientReceiver");
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(javaPico2ReceiverClass, "startReceiver", activity, gameobjname);
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(javaHummingbirdClass, "setPlatformType", platFormType);
            }
            else
            {
                picoDevice = true;
                SetGameObjectToJar(gameobjname);
            }
            Render.UPvr_GetIntConfig((int)GlobalIntConfigs.iPhoneHMDModeEnabled, ref iPhoneHMDModeEnabled);
            if (iPhoneHMDModeEnabled == 1)
            {
                BindService();
            }
            else
            {
                if (IsServiceExisted())
                {
                    BindService();
                }
            }
        }
        catch (AndroidJavaException e)
        {
            PLOG.E("ConnectToAndriod--catch" + e.Message);
        }
#endif
    }
 public void SetVolumeNum()
 {
     bool enable = false;
     System.Random rm = new System.Random();
     int volume = rm.Next(0, 15);
     setVolumnum.text = "Random number:" + volume.ToString();
     enable = Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_SetVolumeNum(volume);
     if (!enable)
     {
         PLOG.E("SetVolumeNum Error");
     }
 }
예제 #12
0
    /************************************   Public Interfaces **********************************/
    #region       PublicInterfaces

    public void ConnectToAndriod()
    {
#if ANDROID_DEVICE
        try
        {
            Debug.Log("PvrLog SDK Version :  " + Pvr_UnitySDKAPI.System.UPvr_GetSDKVersion().ToString() + "  Unity Script Version :" + Pvr_UnitySDKAPI.System.UPvr_GetUnitySDKVersion().ToString());
            UnityEngine.AndroidJavaClass unityPlayer = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer");
            activity                   = unityPlayer.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity");
            javaVrActivityClass        = new UnityEngine.AndroidJavaClass("com.psmart.vrlib.VrActivity");
            javaserviceClass           = new AndroidJavaClass("com.picovr.picovrlib.hummingbirdclient.UnityClient");
            javaVrActivityLongReceiver = new UnityEngine.AndroidJavaClass("com.psmart.vrlib.HomeKeyReceiver");
            javaSysActivityClass       = new UnityEngine.AndroidJavaClass("com.psmart.aosoperation.SysActivity");
            javaVrActivityClientClass  = new UnityEngine.AndroidJavaClass("com.psmart.vrlib.PvrClient");
            Pvr_UnitySDKAPI.System.Pvr_SetInitActivity(activity.GetRawObject(), javaVrActivityClass.GetRawClass());
            model = javaVrActivityClass.CallStatic <string>("Pvr_GetBuildModel");

            double[] parameters = new double[5];
            Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(ref parameters, javaVrActivityClass, "getDPIParameters", activity);
            int platformType = -1;
            int enumindex    = (int)Pvr_UnitySDKAPI.GlobalIntConfigs.PLATFORM_TYPE;
            Pvr_UnitySDKAPI.Render.UPvr_GetIntConfig(enumindex, ref platformType);

            string systemfps = "";
            Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod <string>(ref systemfps, javaserviceClass, "getSysproc", "persist.pvr.debug.appfps");
            if (systemfps != "")
            {
                Pvr_UnitySDKManager.SDK.systemFPS = Convert.ToBoolean(Convert.ToInt16(systemfps));
            }

            if (platformType == 0)
            {
                Pvr_UnitySDKAPI.Render.UPvr_ChangeScreenParameters(model, (int)parameters[0], (int)parameters[1], parameters[2], parameters[3], parameters[4]);
                Screen.sleepTimeout = SleepTimeout.NeverSleep;
            }
            if (Pvr_UnitySDKAPI.System.UPvr_IsPicoActivity())
            {
                bool setMonoPresentation = Pvr_UnitySDKAPI.System.UPvr_SetMonoPresentation();
                Debug.Log("ConnectToAndriod set monoPresentation success ?-------------" + setMonoPresentation.ToString());

                bool isPresentationExisted = Pvr_UnitySDKAPI.System.UPvr_IsPresentationExisted();
                Debug.Log("ConnectToAndriod presentation existed ?-------------" + isPresentationExisted.ToString());
            }
            isShellMode = GetIsShellMode();
            Debug.Log("ConnectToAndriod isShellMode ?-------------" + isShellMode.ToString());
        }
        catch (AndroidJavaException e)
        {
            PLOG.E("ConnectToAndriod--catch" + e.Message);
        }
#endif
        canConnecttoActivity = true;
    }
    public void SetBrightness()
    {
        bool enable = false;
        System.Random rm = new System.Random();
        int brightness = rm.Next(0, 255);
        setBrightnum.text = "Random number:" + brightness.ToString();
        enable = Pvr_UnitySDKAPI.VolumePowerBrightness.UPvr_SetCommonBrightness(brightness);

        if (!enable)
        {
            PLOG.E("SetBrightness Error");
        }
    }
예제 #14
0
    private void InitForEye(ref Material mat, ref Material mat1)
    {
        Shader shader  = Shader.Find("Pvr_UnitySDK/Undistortion");
        Shader shader1 = Shader.Find("Pvr_UnitySDK/FillColor");

        if (shader == null || shader1 == null)
        {
            PLOG.E("Ths Shader Missing !");
            return;
        }
        mat  = new Material(shader);
        mat1 = new Material(shader1);
    }
        public static void Pvr_SetScreenBrightnessLevel(int vrBrightness, int level)
        {
#if ANDROID_DEVICE
            try
            {
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(javaSysActivityClass, "setScreenBrightnessLevel", vrBrightness, level);
            }
            catch (Exception e)
            {
                PLOG.E(" Error :" + e.ToString());
            }
#endif
        }
        public static int[] Pvr_GetScreenBrightnessLevel()
        {
            int[] currentlight = { 0 };
#if ANDROID_DEVICE
            try
            {
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod <int[]>(ref currentlight, javaSysActivityClass, "getScreenBrightnessLevel");
            }
            catch (Exception e)
            {
                PLOG.E(" Error :" + e.ToString());
            }
#endif
            return(currentlight);
        }
        public static int UPvr_GetCurrentVolumeNumber()
        {
#if ANDROID_DEVICE
            int currentvolm = 0;
            try
            {
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod <int>(ref currentvolm, javaSysActivityClass, "Pvr_GetAudionumber");
            }
            catch (Exception e)
            {
                PLOG.E(" Error :" + e.ToString());
            }
            return(currentvolm);
#endif
            return(0);
        }
        public static bool UPvr_SetVolumeNum(int volume)
        {
#if ANDROID_DEVICE
            try
            {
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(javaSysActivityClass, "Pvr_ChangeAudio", volume);
                return(true);
            }
            catch (Exception e)
            {
                PLOG.E(" Error :" + e.ToString());
                return(false);
            }
#endif
            return(true);
        }
        public static int UPvr_GetCurrentBrightness()
        {
#if ANDROID_DEVICE
            int currentlight = 0;
            try
            {
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod <int>(ref currentlight, javaSysActivityClass, "Pvr_GetScreen_Brightness", Pvr_UnitySDKManager.pvr_UnitySDKRender.activity);
            }
            catch (Exception e)
            {
                PLOG.E(" Error :" + e.ToString());
            }
            return(currentlight);
#endif
            return(0);
        }
        public static bool UPvr_StopAudioReceiver()
        {
#if ANDROID_DEVICE
            try
            {
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(volumejavaVrActivityClass, "Pvr_StopReceiver", Pvr_UnitySDKManager.pvr_UnitySDKRender.activity);
                return(true);
            }
            catch (Exception e)
            {
                PLOG.E("startReceiver Error :" + e.ToString());
                return(false);
            }
#endif
            return(true);
        }
        public static bool UPvr_SetBrightness(int brightness)
        {
#if ANDROID_DEVICE
            try
            {
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(javaSysActivityClass, "Pvr_SetScreen_Brightness", brightness, Pvr_UnitySDKManager.pvr_UnitySDKRender.activity);
                return(true);
            }
            catch (Exception e)
            {
                PLOG.E(" Error :" + e.ToString());
                return(false);
            }
#endif
            return(true);
        }
        public static bool UPvr_StartAudioReceiver(string startreceivre)
        {
#if ANDROID_DEVICE
            try
            {
                // string startreceivre = PicoVRManager.SDK.gameObject.name;
                Pvr_UnitySDKAPI.System.UPvr_CallStaticMethod(volumejavaVrActivityClass, "Pvr_StartReceiver", Pvr_UnitySDKManager.pvr_UnitySDKRender.activity, startreceivre);
                return(true);
            }
            catch (Exception e)
            {
                PLOG.E("startReceiver Error :" + e.ToString());
                return(false);
            }
#endif
            return(true);
        }
예제 #23
0
    public bool InitUnitySDKSensor()
    {
        bool enable = false;

        try
        {
            if (Pvr_UnitySDKAPI.Sensor.UPvr_Init((int)sensorIndex) == 0)
            {
                enable = true;
            }
        }
        catch (System.Exception e)
        {
            PLOG.E("InitUnitySDKSensor ERROR! " + e.Message);
            throw;
        }
        return(enable);
    }
예제 #24
0
    public bool GetUnitySDKPSensorState()
    {
        bool enable = false;

        try
        {
            if (Pvr_UnitySDKAPI.Sensor.UPvr_ResetSensor((int)sensorIndex) == 0)
            {
                enable = true;
            }
        }
        catch (System.Exception e)
        {
            PLOG.E("GetUnitySDKPSensorState ERROR! " + e.Message);
            throw;
        }
        return(enable);
    }
예제 #25
0
    public Vector3 GetEyeTrackingPos()
    {
        if (!Pvr_UnitySDKEyeManager.Instance.trackEyes)
        {
            return(Vector3.zero);
        }

        EyeDeviceInfo info = GetDeviceInfo();

        Vector3 frustumSize = Vector3.zero;

        frustumSize.x = 0.5f * (info.targetFrustumLeft.right - info.targetFrustumLeft.left);
        frustumSize.y = 0.5f * (info.targetFrustumLeft.top - info.targetFrustumLeft.bottom);
        frustumSize.z = info.targetFrustumLeft.near;

        bool result = Pvr_UnitySDKAPI.System.UPvr_getEyeTrackingData(ref eyePoseData);

        if (!result)
        {
            PLOG.E("UPvr_getEyeTrackingData failed " + result);
            return(Vector3.zero);
        }

        var combinedDirection = Vector3.zero;

        if ((eyePoseData.combinedEyePoseStatus & (int)pvrEyePoseStatus.kGazeVectorValid) != 0)
        {
            combinedDirection = eyePoseData.combinedEyeGazeVector;
        }

        if (combinedDirection.sqrMagnitude > 0f)
        {
            combinedDirection.Normalize();

            float denominator = Vector3.Dot(combinedDirection, Vector3.forward);
            if (denominator > float.Epsilon)
            {
                eyePoint    = combinedDirection * frustumSize.z / denominator;
                eyePoint.x /= frustumSize.x; // [-1..1]
                eyePoint.y /= frustumSize.y; // [-1..1]
            }
        }
        return(eyePoint);
    }
 /*************************************  Unity API ****************************************/
 #region Unity API
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     if (instance != this)
     {
         PLOG.E("instance object should be a singleton.");
         return;
     }
     if (controllerlink == null)
     {
         controllerlink = new Pvr_ControllerLink(this.gameObject.name);
     }
     else
     {
         BindService();
     }
 }
예제 #27
0
    /************************************  Private Interfaces **********************************/
    #region     Private Interfaces

    private bool InitRenderAbility()
    {
        if (UpdateRenderParaFrame())
        {
            if (CreateEyeBuffer())
            {
                float separation = 0.0625f;
                int   enumindex  = (int)Pvr_UnitySDKAPI.GlobalFloatConfigs.IPD;
                if (0 != Pvr_UnitySDKAPI.Render.UPvr_GetFloatConfig(enumindex, ref separation))
                {
                    PLOG.E("Cannot get ipd");
                    separation = 0.0625f;
                }
                Pvr_UnitySDKManager.SDK.leftEyeOffset  = new Vector3(-separation / 2, 0, 0);
                Pvr_UnitySDKManager.SDK.rightEyeOffset = new Vector3(separation / 2, 0, 0);
                return(true);
            }
        }
        return(false);
    }
예제 #28
0
    private void LoadResFromJson()
    {
        string json = Pvr_UnitySDKAPI.System.UPvr_GetObjectOrArray("config.controller",
                                                                   (int)Pvr_UnitySDKAPI.ResUtilsType.TYPR_OBJECTARRAY);

        if (json != null)
        {
            JsonData jdata = JsonMapper.ToObject(json);
            if (controllerType >= 0)
            {
                curControllerData = jdata[controllerType - 1];
                modelFilePath     = (string)curControllerData["base_path"];
                modelName         = (string)curControllerData["model_name"] + "_sys";
            }
        }
        else
        {
            PLOG.E("PvrLog LoadJsonFromSystem Error");
        }
    }
예제 #29
0
    //wait for unity to start rendering
    IEnumerator Start()
    {
        if (SDKManagerInit())
        {
            PLOG.I("SDK Init success.");
        }
        else
        {
            PLOG.E("SDK Init Failed.");
            Application.Quit();
        }
        if (Pvr_UnitySDKRender.Instance != null)
        {
            Pvr_UnitySDKRender.Instance.ReInit();
        }
#if UNITY_EDITOR
        yield break;
#else
        yield return(StartCoroutine(InitRenderThreadRoutine()));
#endif
    }
예제 #30
0
    public float GetEyeHFOV()
    {
        float fov = 102;

        try
        {
            int enumindex = (int)Pvr_UnitySDKAPI.GlobalFloatConfigs.HFOV;
            Pvr_UnitySDKAPI.Render.UPvr_GetFloatConfig(enumindex, ref fov);
            if (fov <= 0)
            {
                fov = 102;
            }
        }
        catch (System.Exception e)
        {
            PLOG.E("GetEyeHFOV ERROR! " + e.Message);
            throw;
        }

        return(fov);
    }