在我的游戏中,我使用损害算法在运行时修改网格。
在那之后,我想拯救他们。
我得到了所有的网格:
MeshFilter[] meshfilters = MyObject.GetComponentsInChildren<MeshFilter>();然后我修改单个网格。
如何将它保存在我原来的FBX文件中?
谢谢
发布于 2019-01-18 03:44:53
Unity的内部网格类型与FBX不一样,FBX是一种文件存储格式,而团结在运行时使用不同的内部结构,以提高效率。
据我所知,没有标准方法可以将运行时网格保存为FBX (这是3D建模软件的特性,而不是游戏引擎)。
您可以以某种方式保存变形并在重新加载模型时重新应用它们,当我做了类似的事情(运行时自定义生成的地形网格)时,我会在运行时生成一个网格,然后保存生成该网格所需的数据,然后将其传递到最初用于生成网格的流中。
可以在统一编辑器中序列化网格数据,因为meshdata实际上是一种与FBX不同的格式(Unity,然后从FBX的数据生成网格资产,然后将该网格与FBX关联起来)--通过使用AssetDatabase.CreateAsset() https://docs.unity3d.com/ScriptReference/AssetDatabase.CreateAsset.html来实现这一点
但我不认为这是你想要做的。
如果您想要完整的FBX功能套件(皮肤,动画,在其他统一项目中使用),并且您想在运行时使用它们,那么您实际上没有我所知道的任何选项。除非实现您自己的FBX序列化库(并不是一个合理的解决方案)
https://stackoverflow.com/questions/54244211
复制相似问题