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

102 lines
2.6 KiB
C#

using System;
using UnityEngine;
namespace UnityEditor.U2D.Animation
{
internal class MeshToolWrapper : BaseTool
{
private MeshTool m_MeshTool;
private SkeletonTool m_SkeletonTool;
private SpriteMeshViewMode m_MeshMode;
private bool m_Disable = false;
private SkeletonMode m_SkeletonMode;
protected MeshPreviewBehaviour m_MeshPreviewBehaviour = new MeshPreviewBehaviour();
public MeshTool meshTool
{
get { return m_MeshTool; }
set { m_MeshTool = value; }
}
public SkeletonTool skeletonTool
{
get { return m_SkeletonTool; }
set { m_SkeletonTool = value; }
}
public SpriteMeshViewMode meshMode
{
get { return m_MeshMode; }
set { m_MeshMode = value; }
}
public bool disableMeshEditor
{
get { return m_Disable; }
set { m_Disable = value; }
}
public SkeletonMode skeletonMode
{
get { return m_SkeletonMode; }
set { m_SkeletonMode = value; }
}
public override int defaultControlID
{
get
{
Debug.Assert(meshTool != null);
return meshTool.defaultControlID;
}
}
public override IMeshPreviewBehaviour previewBehaviour
{
get { return m_MeshPreviewBehaviour; }
}
protected override void OnActivate()
{
Debug.Assert(meshTool != null);
skeletonTool.enableBoneInspector = false;
skeletonTool.Activate();
meshTool.Activate();
m_MeshPreviewBehaviour.drawWireframe = true;
m_MeshPreviewBehaviour.showWeightMap = false;
m_MeshPreviewBehaviour.overlaySelected = false;
}
protected override void OnDeactivate()
{
skeletonTool.Deactivate();
meshTool.Deactivate();
}
protected override void OnGUI()
{
DoSkeletonGUI();
DoMeshGUI();
}
protected void DoSkeletonGUI()
{
Debug.Assert(skeletonTool != null);
skeletonTool.mode = skeletonMode;
skeletonTool.editBindPose = false;
skeletonTool.DoGUI();
}
protected void DoMeshGUI()
{
Debug.Assert(meshTool != null);
meshTool.disable = disableMeshEditor;
meshTool.mode = meshMode;
meshTool.DoGUI();
}
}
}