| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System.Collections;
- using System.Collections.Generic;
- using System.Reflection;
- using UnityEngine;
- using UnityEditor;
- [CustomEditor(typeof(AroundSphereMove))]
- public class AroundSphereMoveEditor : Editor
- {
- private SerializedProperty m_ShakeDir;
- private SerializedProperty m_ShakeSpeed;
- private SerializedProperty m_MoveRadius;
- private SerializedProperty m_MoveAngleSpeed;
- private SerializedProperty m_SelfRotateSpeed;
- private SerializedProperty m_OffsetAngle;
- private SerializedProperty m_SelfScale;
- private SerializedProperty m_SelfHeight;
- private FieldInfo m_NeedResetFieldInfo;
- void OnEnable()
- {
- m_ShakeDir = serializedObject.FindProperty("m_ShakeDir");
- m_ShakeSpeed = serializedObject.FindProperty("m_ShakeSpeed");
- m_MoveRadius = serializedObject.FindProperty("m_MoveRadius");
- m_MoveAngleSpeed = serializedObject.FindProperty("m_MoveAngleSpeed");
- m_SelfRotateSpeed = serializedObject.FindProperty("m_SelfRotateSpeed");
- m_OffsetAngle = serializedObject.FindProperty("m_OffsetAngle");
- m_SelfScale = serializedObject.FindProperty("m_SelfScale");
- m_SelfHeight = serializedObject.FindProperty("m_SelfHeight");
- m_NeedResetFieldInfo = typeof(AroundSphereMove).GetField("m_NeedReset", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
- }
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
- bool changed = false;
- EditorGUILayout.PropertyField(m_ShakeDir, EditorGUIUtility.TrTextContent("抖动方向"));
- EditorGUILayout.PropertyField(m_ShakeSpeed, EditorGUIUtility.TrTextContent("抖动速度"));
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(m_MoveRadius, EditorGUIUtility.TrTextContent("绕圈半径"));
- changed = EditorGUI.EndChangeCheck() || changed;
- EditorGUILayout.PropertyField(m_MoveAngleSpeed, EditorGUIUtility.TrTextContent("绕圈速度"));
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(m_SelfRotateSpeed, EditorGUIUtility.TrTextContent("自转速度"));
- changed = EditorGUI.EndChangeCheck() || changed;
- EditorGUI.BeginChangeCheck();
- m_OffsetAngle.quaternionValue = Quaternion.Euler(EditorGUILayout.Vector3Field(EditorGUIUtility.TrTextContent("初始角度"), m_OffsetAngle.quaternionValue.eulerAngles));
- changed = EditorGUI.EndChangeCheck() || changed;
- EditorGUI.BeginChangeCheck();
- EditorGUILayout.PropertyField(m_SelfScale, EditorGUIUtility.TrTextContent("自身缩放"));
- changed = EditorGUI.EndChangeCheck() || changed;
- EditorGUILayout.PropertyField(m_SelfHeight, EditorGUIUtility.TrTextContent("初始偏移高度"));
- serializedObject.ApplyModifiedProperties();
- if (changed)
- {
- foreach(var item in targets)
- {
- m_NeedResetFieldInfo.SetValue(item, true);
- }
- }
- }
- }
|