Mi trabajo es escribir un código que cargue un .OBJ en Unity en tiempo de ejecución. Unity ha proporcionado un código de muestra en su página wiki . Usé el siguiente código para usar la clase dada en el enlace:
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"); }No recibo ningún error en Unity Monodevelop, pero tampoco se carga el modelo. ¿Cuál puede ser la probable solución?
No basta con crear un objeto de malla. Tendrás que hacer al menos dos cosas más:
Entonces, si cambia su código a lo siguiente, al menos debería ver su malla si se ha creado con éxito.
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; } }A partir de ahí, aún tendría que asignar un material (si se carga/creó) y otras cosas por el estilo, pero sería un comienzo.