AnimancerSettingsTool.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Animancer // https://kybernetik.com.au/animancer // Copyright 2022 Kybernetik //
  2. #if UNITY_EDITOR
  3. using System;
  4. using Object = UnityEngine.Object;
  5. namespace Animancer.Editor.Tools
  6. {
  7. /// <summary>[Editor-Only] Displays the <see cref="AnimancerSettings"/>.</summary>
  8. /// https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/AnimancerSettingsTool
  9. [Serializable]
  10. internal class AnimancerSettingsTool : AnimancerToolsWindow.Tool
  11. {
  12. /************************************************************************************************************************/
  13. /// <inheritdoc/>
  14. public override int DisplayOrder => int.MaxValue;
  15. /// <inheritdoc/>
  16. public override string Name => "Settings";
  17. /// <inheritdoc/>
  18. public override string Instructions => null;
  19. /// <inheritdoc/>
  20. public override string HelpURL => Strings.DocsURLs.APIDocumentation + "." + nameof(Editor) + "/" + nameof(AnimancerSettings);
  21. /************************************************************************************************************************/
  22. [NonSerialized]
  23. private UnityEditor.Editor _SettingsEditor;
  24. /************************************************************************************************************************/
  25. /// <inheritdoc/>
  26. public override void OnEnable(int index)
  27. {
  28. base.OnEnable(index);
  29. var settings = AnimancerSettings.Instance;
  30. if (settings != null)
  31. _SettingsEditor = UnityEditor.Editor.CreateEditor(settings);
  32. }
  33. /// <inheritdoc/>
  34. public override void OnDisable()
  35. {
  36. base.OnDisable();
  37. Object.DestroyImmediate(_SettingsEditor);
  38. }
  39. /************************************************************************************************************************/
  40. /// <inheritdoc/>
  41. public override void DoBodyGUI()
  42. {
  43. if (_SettingsEditor != null)
  44. _SettingsEditor.OnInspectorGUI();
  45. }
  46. /************************************************************************************************************************/
  47. }
  48. }
  49. #endif