58 lines
2.9 KiB
C#
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"));
|
|
}
|
|
}
|
|
|
|
}
|