Nessuna descrizione
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.

PastePanel.cs 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System;
  2. using UnityEditor.U2D.Common;
  3. using UnityEngine.UIElements;
  4. namespace UnityEditor.U2D.Animation
  5. {
  6. #if ENABLE_UXML_SERIALIZED_DATA
  7. [UxmlElement]
  8. #endif
  9. internal partial class PastePanel : VisualElement
  10. {
  11. #if ENABLE_UXML_TRAITS
  12. public class PastePanelFactory : UxmlFactory<PastePanel, PastePanelUxmlTraits> {}
  13. public class PastePanelUxmlTraits : UxmlTraits {}
  14. #endif
  15. public event Action<bool, bool, bool, bool> onPasteActivated = (bones, mesh, flipX, flipY) => {};
  16. private Toggle m_BonesToggle;
  17. private Toggle m_MeshToggle;
  18. private Toggle m_FlipXToggle;
  19. private Toggle m_FlipYToggle;
  20. public bool bones
  21. {
  22. get { return m_BonesToggle.value && m_BonesToggle.enabledSelf; }
  23. set { m_BonesToggle.value = value; }
  24. }
  25. public bool mesh
  26. {
  27. get { return m_MeshToggle.value; }
  28. set { m_MeshToggle.value = value; }
  29. }
  30. public bool flipX
  31. {
  32. get { return m_FlipXToggle.value; }
  33. set { m_FlipXToggle.value = value; }
  34. }
  35. public bool flipY
  36. {
  37. get { return m_FlipYToggle.value; }
  38. set { m_FlipYToggle.value = value; }
  39. }
  40. public PastePanel()
  41. {
  42. styleSheets.Add(ResourceLoader.Load<StyleSheet>("SkinningModule/PastePanelStyle.uss"));
  43. if (EditorGUIUtility.isProSkin)
  44. AddToClassList("Dark");
  45. RegisterCallback<MouseDownEvent>((e) => { e.StopPropagation(); });
  46. RegisterCallback<MouseUpEvent>((e) => { e.StopPropagation(); });
  47. }
  48. public void BindElements()
  49. {
  50. m_BonesToggle = this.Q<Toggle>("BonesField");
  51. m_MeshToggle = this.Q<Toggle>("MeshField");
  52. m_FlipXToggle = this.Q<Toggle>("FlipXField");
  53. m_FlipYToggle = this.Q<Toggle>("FlipYField");
  54. var pasteButton = this.Q<Button>("PasteButton");
  55. pasteButton.clickable.clicked += OnPasteActivated;
  56. }
  57. public void OnPasteActivated()
  58. {
  59. onPasteActivated(bones, mesh, flipX, flipY);
  60. }
  61. public void BonePasteEnable(bool value)
  62. {
  63. m_BonesToggle.SetEnabled(value);
  64. }
  65. public static PastePanel GenerateFromUXML()
  66. {
  67. var visualTree = ResourceLoader.Load<VisualTreeAsset>("SkinningModule/PastePanel.uxml");
  68. var clone = visualTree.CloneTree().Q<PastePanel>("PastePanel");
  69. clone.LocalizeTextInChildren();
  70. clone.BindElements();
  71. return clone;
  72. }
  73. }
  74. }