效果
描述
背景:因为需要对多个场景的语音、动画进行检测。每次都要点开相应的设置,查看配置过于抵效。
部分代码
绘制UI部分
[MenuItem("Tool/拆装编辑")]
static void getYccs()
{
Rect re = new Rect(0, 0, 500, 550);//窗口大小
EditorWindow.GetWindowWithRect(typeof(CZ_EditorUI), re);
}
CZ_EditorUI()
{
this.titleContent = new GUIContent("拆装编辑");
CZ_Editor.init();
}
private void OnGUI()
{
GUILayout.BeginVertical();
GUILayout.Space(10);
GUI.skin.label.fontSize = 18;
GUI.skin.label.alignment = TextAnchor.MiddleCenter;
GUILayout.Label("拆装编辑");
GUILayout.Space(10);
GUI.skin.label.fontSize = 16;
GUI.skin.label.alignment = TextAnchor.UpperLeft;
string name = EditorSceneManager.GetActiveScene().name;
GUILayout.Label("当期场景:" + name);
GUI.skin.label.fontSize = 12;
GUILayout.Label("ID: "+ CZ_Editor.idnameXml.getID(name));
GUILayout.Label("拆装步骤数: " + CZ_Editor.partXml.getbuzou(name)) ;
GUILayout.Label(CZ_Editor.getYuYing(name)) ;
GUILayout.Label(CZ_Editor.getAnimation(name));
GUILayout.Space(30);
....
....
if (GUILayout.Button("读取excel数据")){CZ_Editor.getexelData();}
GUILayout.EndVertical();
}
部分导入设置在meta格式文件里面,简单一下读出来,进行字符串解析就ok了
string tx = File.ReadAllText(matePath);
然后就到 导入模型的时候自动拆分动画
ModelImporter modelImporter = (ModelImporter)assetImporter;
foreach (AnimationClipConfig.modelST item in AnimationClipConfig.modelList)
{
if (assetPath.Contains(item.ModelName))
{
if (tc.but(1, "表单存在动画 是否加载动画拆分") == 1)
{
modelImporter.animationType = ModelImporterAnimationType.Legacy;
ModelImporterClipAnimation[] animations = new ModelImporterClipAnimation[item.clipSTs.Count];
for (int i = 0; i < item.clipSTs.Count; i++)
{
animations[i] = Getddand(item.clipSTs[i].name, item.clipSTs[i].firstFrame, item.clipSTs[i].lastFrame, item.clipSTs[i].isloop);
}
modelImporter.clipAnimations = animations;
}
}
}
好了整体就这几个点:绘制UI,获取meta数据,导入模型自动处理。
剩下就是文件判断,表单分析等等