HumanoidControl_Free/Editor/Tools/TeleportTarget_Editor.cs
Pascal Serrarens 17741d862a First commit
2022-01-12 10:50:57 +01:00

58 lines
2.9 KiB
C#

using UnityEditor;
using UnityEditor.EventSystems;
using UnityEngine;
namespace Passer {
[CanEditMultipleObjects]
[CustomEditor(typeof(TeleportTarget))]
public class TeleportTarget_Editor : EventTriggerEditor {
protected SerializedProperty transformToTeleportProp;
protected SerializedProperty teleportRootProp;
protected SerializedProperty checkCollisionProp;
protected SerializedProperty transportTypeProp;
protected SerializedProperty targetPosRotProp;
protected SerializedProperty targetTransformProp;
protected SerializedProperty poseProp;
protected SerializedProperty enableFootAnimatorProp;
protected SerializedProperty unityEventsProp;
protected override void OnEnable() {
base.OnEnable();
transformToTeleportProp = serializedObject.FindProperty("transformToTeleport");
teleportRootProp = serializedObject.FindProperty("teleportRoot");
checkCollisionProp = serializedObject.FindProperty("checkCollision");
transportTypeProp = serializedObject.FindProperty("movementType");
targetPosRotProp = serializedObject.FindProperty("targetPosRot");
targetTransformProp = serializedObject.FindProperty("targetTransform");
poseProp = serializedObject.FindProperty("pose");
enableFootAnimatorProp = serializedObject.FindProperty("enableAnimators");
unityEventsProp = serializedObject.FindProperty("unityEvents");
}
public override void OnInspectorGUI() {
serializedObject.Update();
InspectorGUI();
serializedObject.ApplyModifiedProperties();
}
protected virtual void InspectorGUI() {
teleportRootProp.boolValue = EditorGUILayout.Toggle("Teleport Root", teleportRootProp.boolValue);
checkCollisionProp.boolValue = EditorGUILayout.Toggle("Check Collision", checkCollisionProp.boolValue);
transportTypeProp.intValue = (int)(MovementType)EditorGUILayout.EnumPopup("Movement Type", (MovementType)transportTypeProp.intValue);
targetPosRotProp.intValue = (int)(TeleportTarget.TargetPosRot)EditorGUILayout.EnumPopup("Target Pos/Rot", (TeleportTarget.TargetPosRot)targetPosRotProp.intValue);
if (targetPosRotProp.intValue == (int)TeleportTarget.TargetPosRot.Transform) {
targetTransformProp.objectReferenceValue = (Transform)EditorGUILayout.ObjectField("Target Transform", targetTransformProp.objectReferenceValue, typeof(Transform), true);
}
poseProp.objectReferenceValue = (Humanoid.Pose)EditorGUILayout.ObjectField("Pose", poseProp.objectReferenceValue, typeof(Humanoid.Pose), false);
enableFootAnimatorProp.boolValue = EditorGUILayout.Toggle("Enable Foot Animator", enableFootAnimatorProp.boolValue);
EditorGUILayout.PropertyField(unityEventsProp, new GUIContent("OnTeleported"));
}
}
}