从导入的模型中删除组件(未实例化的游戏对象)
Delete component from imported model (NOT instantiated GameObject)
最近我一直在使用 Unity 中的 Asset Importer
/Model Importer
,我成功地删除了 [=] 上的 Camera
和 Light
组件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;
最近我一直在使用 Unity 中的 Asset Importer
/Model Importer
,我成功地删除了 [=] 上的 Camera
和 Light
组件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;