Singularity/Library/PackageCache/com.unity.2d.animation@7.0.10/Editor/SkinningModule/SkeletonTool/SkeletonToolView.cs
2024-05-06 11:45:45 -07:00

63 lines
2.5 KiB
C#

using System;
using UnityEditor.U2D.Layout;
using UnityEngine;
namespace UnityEditor.U2D.Animation
{
internal class SkeletonToolView
{
private BoneInspectorPanel m_BoneInspectorPanel;
public event Action<BoneCache, string> onBoneNameChanged = (b, s) => {};
public event Action<BoneCache, int> onBoneDepthChanged = (b, i) => {};
public event Action<BoneCache, float> onBoneRotationChanged = (b, i) => {};
public event Action<BoneCache, Vector2> onBonePositionChanged = (b, i) => {};
public event Action<BoneCache, Color32> onBoneColorChanged = (b, i) => {};
public SkeletonToolView()
{
m_BoneInspectorPanel = BoneInspectorPanel.GenerateFromUXML();
m_BoneInspectorPanel.onBoneNameChanged += (b, n) => onBoneNameChanged(b, n);
m_BoneInspectorPanel.onBoneDepthChanged += (b, d) => onBoneDepthChanged(b, d);
m_BoneInspectorPanel.onBoneRotationChanged += (b, n) => onBoneRotationChanged(b, n);
m_BoneInspectorPanel.onBonePositionChanged += (b, d) => onBonePositionChanged(b, d);
m_BoneInspectorPanel.onBoneColorChanged += (b, d) => onBoneColorChanged(b, d);
Hide();
}
public void Initialize(LayoutOverlay layout)
{
layout.rightOverlay.Add(m_BoneInspectorPanel);
}
public void Show(BoneCache target, bool isReadOnly)
{
m_BoneInspectorPanel.target = target;
m_BoneInspectorPanel.SetHiddenFromLayout(false);
var readOnlyProperty = BoneInspectorPanel.PropertyReadOnly.None;
if (isReadOnly)
readOnlyProperty = BoneInspectorPanel.PropertyReadOnly.Name |
BoneInspectorPanel.PropertyReadOnly.Depth |
BoneInspectorPanel.PropertyReadOnly.Color;
m_BoneInspectorPanel.SetReadOnly(readOnlyProperty);
}
public BoneCache target => m_BoneInspectorPanel.target;
public void Hide()
{
m_BoneInspectorPanel.HidePanel();
m_BoneInspectorPanel.target = null;
}
public void Update(string name, int depth, Vector2 position, float rotation, Color32 color)
{
m_BoneInspectorPanel.boneName = name;
m_BoneInspectorPanel.boneDepth = depth;
m_BoneInspectorPanel.bonePosition = position;
m_BoneInspectorPanel.boneRotation = rotation;
m_BoneInspectorPanel.boneColor = color;
}
}
}