示例#1
0
 public Mesh(string fileName)
 {
     triangles = new List <Triangle>();
     parser    = new OBJParser();
     if (parser.LoadRawModel(fileName))
     {
         this.triangles = parser.triangles;
     }
     else
     {
         Console.WriteLine("Error while creating mesh");
     }
 }
示例#2
0
        public static object LoadUncached(string path, Type type)
        {
            AssetMetadata metadata;

            TryGetMapped(path, out metadata, true);

            if (metadata == null)
            {
                goto NoMetadata;
            }

            if ((type == Types.Texture || type == Types.Texture2D) &&
                metadata.AssetType == Types.Texture2D)
            {
                Texture2D tex = new Texture2D(2, 2);
                tex.name = path;
                tex.LoadImage(metadata.Data);
                return(tex);
            }

            if (metadata.AssetType == Types.Meshes &&
                metadata.AssetFormat == "obj")
            {
                OBJData data = OBJParser.ParseOBJ(path);

                if (type == Types.OBJData)
                {
                    return(data);
                }
                else if (type == Types.OBJObject)
                {
                    return(data.Objects.Count == 0 ? null : data.Objects[0]);
                }

                else if (type == Types.Meshes)
                {
                    return(data.ToMeshes());
                }
                else
                {
                    return(data.Objects.Count == 0 ? null : data.Objects[0].ToMesh());
                }
            }

NoMetadata:
            return(null);
        }
    private MeshFilter meshFilter; // MeshFilter reference, used to display a Unity Mesh


    // Start is called before the first frame update
    void Start()
    {
        parser     = new OBJParser();
        meshFilter = GetComponent <MeshFilter>();
    }