XRButtonToggleEditor.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using UnityEngine;
  2. using UnityEditor.UI;
  3. using UnityEditor;
  4. using XRTool.Util;
  5. namespace XRTool.WorldUI
  6. {
  7. [InitializeOnLoad]
  8. [CustomEditor(typeof(XRButtonToggle))]
  9. public class XRButtonToggleEditor : XRToggleEditor
  10. {
  11. private SerializedProperty closeColor;
  12. private SerializedProperty openColor;
  13. protected override void OnEnable()
  14. {
  15. base.OnEnable();
  16. closeColor = serializedObject.FindProperty("closeColor");
  17. openColor = serializedObject.FindProperty("openColor");
  18. }
  19. public override void OnInspectorGUI()
  20. {
  21. base.OnInspectorGUI();
  22. EditorGUILayout.PropertyField(closeColor, new GUIContent("位移"));
  23. EditorGUILayout.PropertyField(openColor, new GUIContent("时间"));
  24. }
  25. [MenuItem("GameObject/XRUI/XRToggle/XRButtonToggle", priority = 0)]
  26. static void InitButtonToggle()
  27. {
  28. var obj = Instantiate(Resources.Load<XRToggle>(typeof(XRButtonToggle).Name));
  29. obj.name = (typeof(XRButtonToggle).Name);
  30. if (obj)
  31. {
  32. var parent = Selection.activeGameObject;
  33. if (!parent)
  34. {
  35. var canvas = GameObject.FindObjectsOfType(typeof(Canvas));
  36. if (canvas != null)
  37. {
  38. for (int i = 0; i < canvas.Length; i++)
  39. {
  40. if ((canvas[i] as Canvas).renderMode == RenderMode.WorldSpace)
  41. {
  42. parent = (canvas[i] as Canvas).gameObject;
  43. break;
  44. }
  45. }
  46. }
  47. }
  48. UnityUtil.SetParent(parent ? parent.transform : null, obj.transform);
  49. Selection.activeGameObject = obj.gameObject;
  50. }
  51. }
  52. }
  53. }