|
|
- namespace VRTK
- {
- using UnityEngine;
- using UnityEditor;
-
- [CustomEditor(typeof(VRTK_InteractHaptics))]
- public class VRTK_InteractHapticsEditor : Editor
- {
- SerializedProperty clipOnNearTouch;
- SerializedProperty strengthOnNearTouch;
- SerializedProperty durationOnNearTouch;
- SerializedProperty intervalOnNearTouch;
- SerializedProperty cancelOnNearUntouch;
-
- SerializedProperty clipOnTouch;
- SerializedProperty strengthOnTouch;
- SerializedProperty durationOnTouch;
- SerializedProperty intervalOnTouch;
- SerializedProperty cancelOnUntouch;
-
- SerializedProperty clipOnGrab;
- SerializedProperty strengthOnGrab;
- SerializedProperty durationOnGrab;
- SerializedProperty intervalOnGrab;
- SerializedProperty cancelOnUngrab;
-
- SerializedProperty clipOnUse;
- SerializedProperty strengthOnUse;
- SerializedProperty durationOnUse;
- SerializedProperty intervalOnUse;
- SerializedProperty cancelOnUnuse;
-
- SerializedProperty objectToAffect;
-
- private void OnEnable()
- {
- clipOnNearTouch = serializedObject.FindProperty("clipOnNearTouch");
- strengthOnNearTouch = serializedObject.FindProperty("strengthOnNearTouch");
- durationOnNearTouch = serializedObject.FindProperty("durationOnNearTouch");
- intervalOnNearTouch = serializedObject.FindProperty("intervalOnNearTouch");
- cancelOnNearUntouch = serializedObject.FindProperty("cancelOnNearUntouch");
-
- clipOnTouch = serializedObject.FindProperty("clipOnTouch");
- strengthOnTouch = serializedObject.FindProperty("strengthOnTouch");
- durationOnTouch = serializedObject.FindProperty("durationOnTouch");
- intervalOnTouch = serializedObject.FindProperty("intervalOnTouch");
- cancelOnUntouch = serializedObject.FindProperty("cancelOnUntouch");
-
- clipOnGrab = serializedObject.FindProperty("clipOnGrab");
- strengthOnGrab = serializedObject.FindProperty("strengthOnGrab");
- durationOnGrab = serializedObject.FindProperty("durationOnGrab");
- intervalOnGrab = serializedObject.FindProperty("intervalOnGrab");
- cancelOnUngrab = serializedObject.FindProperty("cancelOnUngrab");
-
- clipOnUse = serializedObject.FindProperty("clipOnUse");
- strengthOnUse = serializedObject.FindProperty("strengthOnUse");
- durationOnUse = serializedObject.FindProperty("durationOnUse");
- intervalOnUse = serializedObject.FindProperty("intervalOnUse");
- cancelOnUnuse = serializedObject.FindProperty("cancelOnUnuse");
-
- objectToAffect = serializedObject.FindProperty("objectToAffect");
- }
-
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Haptics On Near Touch Settings", EditorStyles.boldLabel);
-
- EditorGUILayout.ObjectField(clipOnNearTouch, typeof(AudioClip));
- if (clipOnNearTouch.objectReferenceValue == null)
- {
- EditorGUILayout.PropertyField(strengthOnNearTouch);
- EditorGUILayout.PropertyField(durationOnNearTouch);
- EditorGUILayout.PropertyField(intervalOnNearTouch);
- }
- EditorGUILayout.PropertyField(cancelOnNearUntouch);
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Haptics On Touch Settings", EditorStyles.boldLabel);
-
- EditorGUILayout.ObjectField(clipOnTouch, typeof(AudioClip));
- if (clipOnTouch.objectReferenceValue == null)
- {
- EditorGUILayout.PropertyField(strengthOnTouch);
- EditorGUILayout.PropertyField(durationOnTouch);
- EditorGUILayout.PropertyField(intervalOnTouch);
- }
- EditorGUILayout.PropertyField(cancelOnUntouch);
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Haptics On Grab Settings", EditorStyles.boldLabel);
-
- EditorGUILayout.ObjectField(clipOnGrab, typeof(AudioClip));
- if (clipOnGrab.objectReferenceValue == null)
- {
- EditorGUILayout.PropertyField(strengthOnGrab);
- EditorGUILayout.PropertyField(durationOnGrab);
- EditorGUILayout.PropertyField(intervalOnGrab);
- }
- EditorGUILayout.PropertyField(cancelOnUngrab);
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Haptics On Use Settings", EditorStyles.boldLabel);
-
- EditorGUILayout.ObjectField(clipOnUse, typeof(AudioClip));
- if (clipOnUse.objectReferenceValue == null)
- {
- EditorGUILayout.PropertyField(strengthOnUse);
- EditorGUILayout.PropertyField(durationOnUse);
- EditorGUILayout.PropertyField(intervalOnUse);
- }
- EditorGUILayout.PropertyField(cancelOnUnuse);
-
- EditorGUILayout.Space();
- EditorGUILayout.PropertyField(objectToAffect);
-
- serializedObject.ApplyModifiedProperties();
- }
- }
- }
|