Loading a .OBJ into Unity at runtime

有些话、适合烂在心里 提交于 2019-12-22 04:38:17

问题


My job is to write a code which loads a .OBJ into Unity in runtime. Unity has provided a sample code in it's wiki page. I used the following code to use the class given in the link:

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");
    }

I'm not getting any errors in Unity Monodevelop, but neither is the model loaded. What may be the probable solution?


回答1:


Just creating a Mesh object is not enough. You will have to do at least two more things:

  • Create a MeshRenderer component
  • Create a MeshFilter component

So if you change your code to the following you should at least see your mesh if it has been successfully created.

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;
    }
}

From there on out you'd still have to assign a material (if loaded/created) and other such things, but it would be a start.



来源:https://stackoverflow.com/questions/31586186/loading-a-obj-into-unity-at-runtime

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!