最近,我一直在Unity中使用Asset Importer
/ Model Importer
,并成功地删除了导入的上的Camera
和Light
组件使用C#
脚本进行3D模型。但是我的问题是我无法删除似乎在每个模型上都存在的Animator
组件。
我正在使用的代码:
importedModel = (ModelImporter)AssetImporter.GetAtPath("Assets/Resources/" + Path.GetFileName(fileName));
importedModel.importAnimation = false;//This is NOT working (Model still has Animator)
importedModel.importCameras = false; //This is working
importedModel.importLights = false; //This is working
importedModel.meshCompression = ModelImporterMeshCompression.High;
AssetDatabase.WriteImportSettingsIfDirty(importedModel.assetPath);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
我尝试的另一件事是从模型中获取实际的Animator
组件,然后销毁。我已经使用以下代码成功获得了对该组件的引用:
foreach (Animator animatorComponent in Resources.FindObjectsOfTypeAll<Animator>())
DestroyImmediate(animatorComponent, true);
但是,当我使用DestroyImmediate
时,该组件仍然存在。
如何从我的3D模型中删除/停用该组件{1>}?
答案 0 :(得分:1)
根据ModelImporter,您可以使用animationType属性指定Animator generation mode
。
options是:
在您的情况下,这可以解决问题;
importedModel.animationType = ModelImporterAnimationType.None;