diff options
Diffstat (limited to 'UnityCollection/Assets/Tools/BoneViewer')
-rw-r--r-- | UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs b/UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs index f143670..e75e564 100644 --- a/UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs +++ b/UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs @@ -81,16 +81,29 @@ public class BoneViewerEditor : EditorTool EditorGUI.BeginChangeCheck();
Handles.zTest = UnityEngine.Rendering.CompareFunction.Always;
- Handles.color = new Color(1, 1, 1, m_Alpha);
+ Transform[] bones = renderer.bones;
Transform root = renderer.rootBone;
+ Color col = Handles.color;
if(root && m_ShowBones)
- DrawBone(null, root, 0);
+ DrawBone(null, root, 0, bones);
+ Handles.color = col;
}
- void DrawBone(Transform parent, Transform bone, int depth)
+ void DrawBone(Transform parent, Transform bone, int depth, Transform[] bones)
{
if (bone == null)
return;
+ Color col = Color.white;
+ for(int i = 0; i < bones.Length; ++i)
+ {
+ if(bones[i] == bone)
+ {
+ col = Color.blue;
+ break;
+ }
+ }
+ col.a = m_Alpha;
+ Handles.color = col;
Handles.SphereHandleCap(0, bone.position, bone.rotation, m_Size, EventType.Repaint);
if(parent)
Handles.DrawLine(parent.position, bone.position);
@@ -101,7 +114,7 @@ public class BoneViewerEditor : EditorTool int count = bone.childCount;
for(int i = 0;i < count; ++i)
{
- DrawBone(bone, bone.GetChild(i), depth + 1);
+ DrawBone(bone, bone.GetChild(i), depth + 1, bones);
}
}
|