从导入的模型中删除组件(未实例化的游戏对象)

Delete component from imported model (NOT instantiated GameObject)

最近我一直在使用 Unity 中的 Asset Importer/Model Importer,我成功地删除了 [=] 上的 CameraLight 组件27=]使用 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 组件,然后 destroy 它。我已经使用以下代码成功获得了对组件的引用:

foreach (Animator animatorComponent in Resources.FindObjectsOfTypeAll<Animator>())        
    DestroyImmediate(animatorComponent, true);

然而,当我使用 DestroyImmediate 时,该组件仍然存在。
我如何从我的 3D 模型中删除/停用这个Animator组件?

根据ModelImporter, you can specify the Animator generation mode using the animationType 属性.

options 是:

  • None
  • 旧版
  • 通用
  • 人类

在你的情况下,这会成功;

importedModel.animationType = ModelImporterAnimationType.None;