首页 文章

在运行时将.OBJ加载到Unity中

提问于
浏览
4

我的工作是编写一个代码,在运行时将.OBJ加载到Unity中 . Unity在其wiki页面中提供了示例代码 . 我使用以下代码来使用链接中给出的类:

public class Main : MonoBehaviour {

    // Use this for initialization
    void Start () {
        Mesh holderMesh = new Mesh ();
        ObjImporter newMesh = new ObjImporter();
        holderMesh = newMesh.ImportFile("C:/Users/cvpa2/Desktop/ng/output.obj");
    }

我在Unity Monodevelop中没有收到任何错误,但模型也没有加载 . 可能的解决方案是什么?

1 回答

  • 5

    仅仅创建一个Mesh对象是不够的 . 你将不得不做至少两件事:

    • 创建MeshRenderer组件

    • 创建MeshFilter组件

    因此,如果您将代码更改为以下内容,则至少应该看到您的网格已成功创建 .

    using UnityEngine;
    using System.Collections;
    
    public class Main : MonoBehaviour
    {
    
        // Use this for initialization
        void Start()
        {
            Mesh holderMesh = new Mesh();
            ObjImporter newMesh = new ObjImporter();
            holderMesh = newMesh.ImportFile("C:/Users/cvpa2/Desktop/ng/output.obj");
    
            MeshRenderer renderer = gameObject.AddComponent<MeshRenderer>();
            MeshFilter filter = gameObject.AddComponent<MeshFilter>();
            filter.mesh = holderMesh;
        }
    }
    

    从那里开始你仍然需要分配一个材料(如果加载/创建)和其他类似的东西,但它将是一个开始 .

相关问题