GenericBakerInspector.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEditor;
  4. namespace RootMotion
  5. {
  6. [CustomEditor(typeof(GenericBaker))]
  7. public class GenericBakerInspector : BakerInspector
  8. {
  9. private GenericBaker script { get { return target as GenericBaker; } }
  10. private MonoScript monoScript;
  11. void OnEnable()
  12. {
  13. // Changing the script execution order
  14. if (!Application.isPlaying)
  15. {
  16. monoScript = MonoScript.FromMonoBehaviour(script);
  17. int currentExecutionOrder = MonoImporter.GetExecutionOrder(monoScript);
  18. if (currentExecutionOrder != 15001) MonoImporter.SetExecutionOrder(monoScript, 15001);
  19. }
  20. }
  21. public override void OnInspectorGUI()
  22. {
  23. serializedObject.Update();
  24. DrawKeyframeSettings(script as Baker);
  25. DrawGenericKeyframeSettings(script);
  26. DrawModeSettings(script as Baker);
  27. DrawButtons(script as Baker);
  28. if (serializedObject.ApplyModifiedProperties())
  29. {
  30. EditorUtility.SetDirty(script);
  31. }
  32. }
  33. private void DrawGenericKeyframeSettings(GenericBaker script)
  34. {
  35. if (script.isBaking) return;
  36. EditorGUILayout.PropertyField(serializedObject.FindProperty("markAsLegacy"));
  37. EditorGUILayout.PropertyField(serializedObject.FindProperty("root"));
  38. EditorGUILayout.PropertyField(serializedObject.FindProperty("rootNode"));
  39. EditorGUILayout.PropertyField(serializedObject.FindProperty("ignoreList"), true);
  40. EditorGUILayout.PropertyField(serializedObject.FindProperty("bakePositionList"), true);
  41. }
  42. }
  43. }