123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using System;
- using UnityEngine;
- using UnityEngine.UIElements;
- namespace UnityEditor.U2D.Animation
- {
- internal class GenerateWeightsPanel : VisualElement
- {
- public class GenerateWeightsPanelFactory : UxmlFactory<GenerateWeightsPanel, GenerateWeightsPanelUxmlTraits> {}
- public class GenerateWeightsPanelUxmlTraits : UxmlTraits {}
- public event Action onGenerateWeights = () => {};
- public event Action onNormalizeWeights = () => {};
- public event Action onClearWeights = () => {};
- private VisualElement m_AssociateBoneControl;
- private Toggle m_AssociateBonesToggle;
- Button m_GenerateWeightsButton;
- public bool associateBones
- {
- get { return m_AssociateBoneControl.visible && m_AssociateBonesToggle.value; }
- set { m_AssociateBonesToggle.value = value; }
- }
- public GenerateWeightsPanel()
- {
- styleSheets.Add(ResourceLoader.Load<StyleSheet>("SkinningModule/GenerateWeightsPanelStyle.uss"));
- if (EditorGUIUtility.isProSkin)
- AddToClassList("Dark");
- AddToClassList("AssociateBoneEnabled");
- RegisterCallback<MouseDownEvent>((e) => { e.StopPropagation(); });
- RegisterCallback<MouseUpEvent>((e) => { e.StopPropagation(); });
- }
- public void BindElements()
- {
- m_AssociateBoneControl = this.Q<VisualElement>("AssociateBonesControl");
- m_GenerateWeightsButton = this.Q<Button>("GenerateWeightsButton");
- m_GenerateWeightsButton.clickable.clicked += OnGenerateWeights;
- var normalizeWeightsButton = this.Q<Button>("NormalizeWeightsButton");
- normalizeWeightsButton.clickable.clicked += OnNormalizeWeights;
- var clearWeightsButton = this.Q<Button>("ClearWeightsButton");
- clearWeightsButton.clickable.clicked += OnClearWeights;
- m_AssociateBonesToggle = this.Q<Toggle>("AssociateBonesField");
- }
- public string generateButtonText
- {
- set { m_GenerateWeightsButton.text = value; }
- }
- public void Update(bool enableAssociateBones)
- {
- m_AssociateBoneControl.SetHiddenFromLayout(!enableAssociateBones);
- if (enableAssociateBones)
- {
- RemoveFromClassList("AssociateBoneDisabled");
- AddToClassList("AssociateBoneEnabled");
- }
- else
- {
- RemoveFromClassList("AssociateBoneEnabled");
- AddToClassList("AssociateBoneDisabled");
- }
- }
- public void OnGenerateWeights()
- {
- onGenerateWeights();
- }
- public void OnNormalizeWeights()
- {
- onNormalizeWeights();
- }
- public void OnClearWeights()
- {
- onClearWeights();
- }
- public static GenerateWeightsPanel GenerateFromUXML()
- {
- var visualTree = ResourceLoader.Load<VisualTreeAsset>("SkinningModule/GenerateWeightsPanel.uxml");
- var clone = visualTree.CloneTree().Q<GenerateWeightsPanel>("GenerateWeightsPanel");
- clone.BindElements();
- return clone;
- }
- }
- }
|