You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.0 KiB
88 lines
3.0 KiB
3 years ago
|
//========= Copyright 2016-2018, HTC Corporation. All rights reserved. ===========
|
||
|
|
||
|
using UnityEditor;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace HTC.UnityPlugin.PoseTracker
|
||
|
{
|
||
|
[CustomEditor(typeof(PoseEaser))]
|
||
|
public class PoseEaserEditor : Editor
|
||
|
{
|
||
|
protected SerializedProperty scriptProp;
|
||
|
protected SerializedProperty priorityProp;
|
||
|
protected SerializedProperty durationProp;
|
||
|
|
||
|
protected virtual void OnEnable()
|
||
|
{
|
||
|
if (target == null || serializedObject == null) return;
|
||
|
|
||
|
scriptProp = serializedObject.FindProperty("m_Script");
|
||
|
priorityProp = serializedObject.FindProperty("m_priority");
|
||
|
durationProp = serializedObject.FindProperty("duration");
|
||
|
}
|
||
|
|
||
|
public override void OnInspectorGUI()
|
||
|
{
|
||
|
if (target == null || serializedObject == null) return;
|
||
|
|
||
|
serializedObject.Update();
|
||
|
|
||
|
var script = target as PoseEaser;
|
||
|
Rect layoutRect;
|
||
|
|
||
|
GUI.enabled = false;
|
||
|
EditorGUILayout.PropertyField(scriptProp);
|
||
|
GUI.enabled = true;
|
||
|
|
||
|
EditorGUI.BeginChangeCheck();
|
||
|
|
||
|
EditorGUILayout.PropertyField(priorityProp);
|
||
|
EditorGUILayout.PropertyField(durationProp);
|
||
|
|
||
|
var fieldWidth = (EditorGUIUtility.currentViewWidth - EditorGUIUtility.labelWidth) / 3f;
|
||
|
|
||
|
// ease position
|
||
|
layoutRect = EditorGUILayout.GetControlRect();
|
||
|
|
||
|
layoutRect.width = EditorGUIUtility.labelWidth;
|
||
|
EditorGUI.LabelField(layoutRect, "Ease Position");
|
||
|
layoutRect.x += layoutRect.width;
|
||
|
|
||
|
layoutRect.width = fieldWidth;
|
||
|
script.easePositionX = EditorGUI.ToggleLeft(layoutRect, "X", script.easePositionX);
|
||
|
layoutRect.x += layoutRect.width;
|
||
|
|
||
|
layoutRect.width = fieldWidth;
|
||
|
script.easePositionY = EditorGUI.ToggleLeft(layoutRect, "Y", script.easePositionY);
|
||
|
layoutRect.x += layoutRect.width;
|
||
|
|
||
|
layoutRect.width = fieldWidth;
|
||
|
script.easePositionZ = EditorGUI.ToggleLeft(layoutRect, "Z", script.easePositionZ);
|
||
|
|
||
|
// ease rotation
|
||
|
layoutRect = EditorGUILayout.GetControlRect();
|
||
|
|
||
|
layoutRect.width = EditorGUIUtility.labelWidth;
|
||
|
EditorGUI.LabelField(layoutRect, "Ease Rotation");
|
||
|
layoutRect.x += layoutRect.width;
|
||
|
|
||
|
layoutRect.width = fieldWidth;
|
||
|
script.easeRotationX = EditorGUI.ToggleLeft(layoutRect, "X", script.easeRotationX);
|
||
|
layoutRect.x += layoutRect.width;
|
||
|
|
||
|
layoutRect.width = fieldWidth;
|
||
|
script.easeRotationY = EditorGUI.ToggleLeft(layoutRect, "Y", script.easeRotationY);
|
||
|
layoutRect.x += layoutRect.width;
|
||
|
|
||
|
layoutRect.width = fieldWidth;
|
||
|
script.easeRotationZ = EditorGUI.ToggleLeft(layoutRect, "Z", script.easeRotationZ);
|
||
|
|
||
|
if (EditorGUI.EndChangeCheck())
|
||
|
{
|
||
|
Undo.RecordObject(target, "Pose Easer Changed");
|
||
|
}
|
||
|
|
||
|
serializedObject.ApplyModifiedProperties();
|
||
|
}
|
||
|
}
|
||
|
}
|