gpt4 book ai didi

c# - 在游戏模式下加载对象

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:55 25 4
gpt4 key购买 nike

我正在构建一个测量人体不同部位的应用程序。为此,每次新的人体都会从外部磁盘上传到 .obj 文件中,所以问题是我无法创建预制件,因为对象不固定,我必须在运行时加载对象。

我尝试过使用 OBJLoader 扩展,但 OBJLoader 使用的是 UnityEditor,因此它在构建后无法正常工作。

是否有任何解决方案可以在构建后从外部磁盘加载 .obj 文件。

我正在为 Windows (.exe) 构建应用程序。

最佳答案

要在运行时加载 obj 格式的 3D 静态模型,请按照下列步骤操作:

  1. 将 obj 文件重命名为 *.bytes/*.txtother supported formats .

  2. 将文件载入TextAsset

    TextAsset data = Resources.Load("model.bytes") as TextAsset;
  3. 解析字符串 ( data.text ) 并从中提取网格数据(顶点位置、索引、uv0、uv1 等)。 obj 格式非常容易解析,也有很多插件和开源项目可用。

  4. 创建一个 Mesh 并用网格数据填充它,并将其分配给 GameObjectMeshFilter

    Mesh mesh = new Mesh();
    GetComponent<MeshFilter>().mesh = mesh;
    mesh.vertices = newVertices;
    mesh.uv = newUV;
    mesh.triangles = newTriangles;

Material 信息也可以从*.mtl 文件中提取。只需遵循类似的步骤:使用适当的着色器创建 Material,为 Material 分配纹理并将 Material 分配给 MeshRenderersharedMaterial 游戏对象

关于c# - 在游戏模式下加载对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41038660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com