我有一个FBX模型与动画剪辑作为子资源(嵌入其中),我想启用循环的所有剪辑在它。我发现AnimationUtility的GetClipSettings方法现在已经过时了,我也尝试过使用它,但它不起作用。这可能是因为Unity已经改变了他们的循环API,似乎访问loopTime属性的唯一方法是手动访问fbx模型的子资源并检查loopTime属性。然而,我必须自动化这个过程,因为在构建资源包之前,我正在为我的模型生成动态动画控制器。该流程包括后期/预处理,然后通过编辑器脚本构建资源包。到目前为止,我已经遇到了this post,我可以通过为每个剪辑设置ModelImporterClipAnimation.loopTime = true来启用loopTime,并且它可以工作。然而,现在模型看起来完全是粉红色的,因为它失去了对材料的引用,不管是什么原因,只有当我包含AssetPostprocessing脚本时才发生这种情况。
这应该如何处理呢?
如果包含AssetPostprocessor的OnPreprocessAnimation,为什么模型会丢失材料?我是不是遗漏了什么?
如果我搞乱了AssetPostprocessor,我是否还应该通过其他方法来处理材料引用
我们可以通过其他方式访问loopTime吗?但是,文档中并没有指定它。
我的代码与上面引用的帖子完全相同,只是稍微更改了一下以启用loopTime。或者,有没有更好的方法来完成这一切?
附注:在一天的搜索和实验之后,我发布了这个问题,如果问题不够清楚,请提前道歉。如果需要,我可以添加更多信息。
发布于 2017-08-29 04:08:32
我认为你必须自己处理这些材料。可以将ModelImporter.importMaterials设置为false,以便在导入模型时创建默认的漫反射材质。
如果材料已存在,您还可以搜索现有材料并在导入模型时加载它:
ModelImporter modelImporter = (ModelImporter)assetImporter;
modelImporter.materialName = ModelImporterMaterialName.BasedOnMaterialName;
modelImporter.materialSearch = ModelImporterMaterialSearch.Local;有关其他选项,请参阅ModelImporterMaterialName和ModelImporterMaterialSearch文档。
https://stackoverflow.com/questions/45920858
复制相似问题