private void OnDestroy() { if (visibleHand) { GameObject.DestroyImmediate(visibleHand.gameObject); } currentHand = HandtoEdit.none; Tools.hidden = false; }
private void OnDisable() { EditorApplication.update -= Update; if (visibleHand) { GameObject.DestroyImmediate(visibleHand.gameObject); } currentHand = HandtoEdit.none; Tools.hidden = false; }
private void HandPositionSceneEditor(HandtoEdit hand) { if (visibleHand == null) { switch (hand) { case HandtoEdit.none: break; case HandtoEdit.right: visibleHand = GameObject.Instantiate <HandAnimationController>(interactable.handData.rightHandPrefab); break; case HandtoEdit.left: visibleHand = GameObject.Instantiate <HandAnimationController>(interactable.handData.leftHandPrefab); break; default: break; } } visibleHand.transform.parent = interactable.transform; switch (hand) { case HandtoEdit.none: break; case HandtoEdit.right: visibleHand.transform.localPosition = interactable.rightHandPivot.position; visibleHand.transform.localRotation = Quaternion.Euler(interactable.rightHandPivot.rotation); break; case HandtoEdit.left: visibleHand.transform.localPosition = interactable.leftHandPivot.position; visibleHand.transform.localRotation = Quaternion.Euler(interactable.leftHandPivot.rotation); break; default: break; } }
private void OnEnable() { Tools.hidden = false; interactable = (Interactable)target; EditorApplication.update += Update; if (visibleHand) { GameObject.DestroyImmediate(visibleHand.gameObject); HandtoEdit currentHand = HandtoEdit.none; } else if (visibleHand = interactable.GetComponentInChildren <HandAnimationController>()) { GameObject.DestroyImmediate(visibleHand.gameObject); visibleHand = null; } if (!interactable.handData) { interactable.handData = GameObject.FindObjectOfType <HandAnimationController>().HandData; } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); if (Application.isPlaying) { if (visibleHand) { DestroyImmediate(visibleHand); } } else if (interactable.handData) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Edit Right hand")) { if (currentHand == HandtoEdit.right) { currentHand = HandtoEdit.none; } else { if (visibleHand) { DestroyImmediate(visibleHand.gameObject); } currentHand = HandtoEdit.right; } } if (GUILayout.Button("Edit Left hand")) { if (currentHand == HandtoEdit.left) { currentHand = HandtoEdit.none; } else { if (visibleHand) { DestroyImmediate(visibleHand.gameObject); } currentHand = HandtoEdit.left; } } EditorGUILayout.EndHorizontal(); if (currentHand != HandtoEdit.none) { EditorGUI.indentLevel++; EditorGUILayout.BeginVertical("GroupBox"); switch (currentHand) { case HandtoEdit.none: break; case HandtoEdit.right: EditorGUILayout.PropertyField(serializedObject.FindProperty("rightHandLimits")); EditorGUILayout.Space(); EditorGUILayout.PropertyField(serializedObject.FindProperty("rightHandPivot").FindPropertyRelative("position")); EditorGUILayout.PropertyField(serializedObject.FindProperty("rightHandPivot").FindPropertyRelative("rotation")); break; case HandtoEdit.left: EditorGUILayout.PropertyField(serializedObject.FindProperty("leftHandLimits")); EditorGUILayout.Space(); EditorGUILayout.PropertyField(serializedObject.FindProperty("leftHandPivot").FindPropertyRelative("position")); EditorGUILayout.PropertyField(serializedObject.FindProperty("leftHandPivot").FindPropertyRelative("rotation")); break; default: break; } EditorGUILayout.EndVertical(); EditorGUI.indentLevel--; HandPositionSceneEditor(currentHand); } else { if (visibleHand) { GameObject.DestroyImmediate(visibleHand.gameObject); } } serializedObject.ApplyModifiedProperties(); } }