自动去除MeshCollider和Animator

using UnityEditor
GameObject parent;
MeshFilter[] meshs;

[MenuItem(“Tools/Show Window”)]
public static void ShowWindow()
{
脚本名 window=GetWindow<脚本名>();
window.Show();
}

void OnGUI()
{
parent=EditorGUILayout.ObjectField(“选择父物体”,parent,typeof(GameObject),true) as GameObject;
if(GUILayout.Button(“删除网格碰撞器”,GUILayout.Width(200)))
{
RemoveMeshCollider();
}
if(GUILayout.Button(“删除Animator组件”,GUILayout.Width(200)))
{
RemoveAnimator();
}
if(GUILayout.Button(“删除未使用的Animation组件”,GUILayout.Width(200)))
{
RemoveNotUsedAnimation();
}
}

void RemoveAnimator()
{
Animator[] animators=parent.GetComponentsInChildren();
for(int i=0;i<animators.Length;i++)
{ DestroyImmediate(animators[i]);}
}
MeshCollier同理
void RemoveNotUsedAnimation()
{
Animation[] animations=parent.GetComponentsInChildren();
for(int i=0;i<animations.Length;i++)
{
if(animations[i].clip==null)
{
DestroyImmediate(animations[i]);
}
}
}

猜你喜欢

转载自blog.csdn.net/qq_41834780/article/details/83780931