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(); } } }