示例#1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        GUI.changed = false;

        Pvr_UnitySDKEye sdkeye    = (Pvr_UnitySDKEye)target;
        eFoveationLevel lastlevel = sdkeye.foveationLevel;
        eFoveationLevel newlevel  = (eFoveationLevel)EditorGUILayout.EnumPopup("Foveation Level", sdkeye.foveationLevel);

        if (lastlevel != newlevel)
        {
            sdkeye.foveationLevel = newlevel;
            switch (sdkeye.foveationLevel)
            {
            case eFoveationLevel.None:
                sdkeye.FoveationGainValue    = Vector2.zero;
                sdkeye.FoveationAreaValue    = 0.0f;
                sdkeye.FoveationMinimumValue = 0.0f;
                break;

            case eFoveationLevel.Low:
                sdkeye.FoveationGainValue    = new Vector2(2.0f, 2.0f);
                sdkeye.FoveationAreaValue    = 0.0f;
                sdkeye.FoveationMinimumValue = 0.125f;
                break;

            case eFoveationLevel.Med:
                sdkeye.FoveationGainValue    = new Vector2(3.0f, 3.0f);
                sdkeye.FoveationAreaValue    = 1.0f;
                sdkeye.FoveationMinimumValue = 0.125f;
                break;

            case eFoveationLevel.High:
                sdkeye.FoveationGainValue    = new Vector2(4.0f, 4.0f);
                sdkeye.FoveationAreaValue    = 2.0f;
                sdkeye.FoveationMinimumValue = 0.125f;
                break;
            }
        }
        sdkeye.FoveationGainValue    = EditorGUILayout.Vector2Field("Foveation Gain Value", sdkeye.FoveationGainValue);
        sdkeye.FoveationAreaValue    = EditorGUILayout.FloatField("Foveation Area Value", sdkeye.FoveationAreaValue);
        sdkeye.FoveationMinimumValue = EditorGUILayout.FloatField("Foveation Minimum Value", sdkeye.FoveationMinimumValue);

        EditorUtility.SetDirty(sdkeye);
        if (GUI.changed)
        {
#if !UNITY_5_2
            UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager
                                                                          .GetActiveScene());
#endif
        }
    }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        GUI.changed = false;

        GUIStyle firstLevelStyle = new GUIStyle(GUI.skin.label);

        firstLevelStyle.alignment = TextAnchor.UpperLeft;
        firstLevelStyle.fontStyle = FontStyle.Bold;
        firstLevelStyle.fontSize  = 12;
        firstLevelStyle.wordWrap  = true;

        Pvr_UnitySDKEyeManager sdkEyeManager = (Pvr_UnitySDKEyeManager)target;

        sdkEyeManager.trackEyes = EditorGUILayout.Toggle("Track Eyes", sdkEyeManager.trackEyes);
        if (sdkEyeManager.trackEyes)
        {
            EditorGUILayout.BeginVertical("box");
            EditorGUILayout.LabelField("Note:", firstLevelStyle);
            EditorGUILayout.LabelField("EyeTracking is supported only on the Neo2 Pro");
            EditorGUILayout.EndVertical();
        }

        eFoveationLevel lastlevel = sdkEyeManager.foveationLevel;
        eFoveationLevel newlevel  = (eFoveationLevel)EditorGUILayout.EnumPopup("Foveation Level", sdkEyeManager.foveationLevel);

        if (lastlevel != newlevel)
        {
            sdkEyeManager.foveationLevel = newlevel;
            switch (sdkEyeManager.foveationLevel)
            {
            case eFoveationLevel.None:
                sdkEyeManager.FoveationGainValue    = Vector2.zero;
                sdkEyeManager.FoveationAreaValue    = 0.0f;
                sdkEyeManager.FoveationMinimumValue = 0.0f;
                break;

            case eFoveationLevel.Low:
                sdkEyeManager.FoveationGainValue    = new Vector2(2.0f, 2.0f);
                sdkEyeManager.FoveationAreaValue    = 0.0f;
                sdkEyeManager.FoveationMinimumValue = 0.125f;
                break;

            case eFoveationLevel.Med:
                sdkEyeManager.FoveationGainValue    = new Vector2(3.0f, 3.0f);
                sdkEyeManager.FoveationAreaValue    = 1.0f;
                sdkEyeManager.FoveationMinimumValue = 0.125f;
                break;

            case eFoveationLevel.High:
                sdkEyeManager.FoveationGainValue    = new Vector2(4.0f, 4.0f);
                sdkEyeManager.FoveationAreaValue    = 2.0f;
                sdkEyeManager.FoveationMinimumValue = 0.125f;
                break;
            }
        }
        sdkEyeManager.FoveationGainValue    = EditorGUILayout.Vector2Field("Foveation Gain Value", sdkEyeManager.FoveationGainValue);
        sdkEyeManager.FoveationAreaValue    = EditorGUILayout.FloatField("Foveation Area Value", sdkEyeManager.FoveationAreaValue);
        sdkEyeManager.FoveationMinimumValue = EditorGUILayout.FloatField("Foveation Minimum Value", sdkEyeManager.FoveationMinimumValue);

        EditorUtility.SetDirty(sdkEyeManager);
        if (GUI.changed)
        {
#if !UNITY_5_2
            UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager
                                                                          .GetActiveScene());
#endif
        }
    }