Ejemplo n.º 1
0
        //-------------------------------------------------------------------------
        // Load new mesh and bind to target materials
        private Mesh loadMesh(string meshURL)
        {
            // Try to load the mesh as a resource, we will have a copy in the Resource/Meshes folder.
            // To do this, we only need the 'filename' component of the mesh name.
            Mesh newMesh = null;

            string[] parts = meshURL.Split('/');
            if (parts.Length > 0)
            {
                string   meshName;
                string[] meshFullName = parts[parts.Length - 1].Split('.');
                meshName = "Meshes/" + meshFullName[0];
                newMesh  = Resources.Load(meshName, typeof(Mesh)) as Mesh;
                if (newMesh != null)
                {
                    VLog.log(VLog.LEVEL_DEBUG, "Loaded mesh from internal resource " + meshName);
                }
            }

            // If we can't load a built-in resource, then we load the mesh URL from the web.
            if (newMesh == null)
            {
                WWW meshFile = new WWW(meshURL);
                while (!meshFile.isDone && (meshFile.error == null))
                {
                    ;
                }
                if (string.IsNullOrEmpty(meshFile.error))
                {
                    // Load mesh here
                    newMesh = ObjImporter.ImportMesh(meshFile.text);
                    VLog.log(VLog.LEVEL_DEBUG, "New mesh imported from " + meshURL);
                    if (newMesh == null)
                    {
                        VLog.log(VLog.LEVEL_ERROR, "Unable to parse mesh at URL " + meshURL + " error " + meshFile.error);
                        return(newMesh);
                    }
                }
                else
                {
                    VLog.log(VLog.LEVEL_ERROR, "Unable to retrieve mesh URL " + meshURL + " error " + meshFile.error);
                    return(newMesh);
                }
            }
            if (newMesh != null)
            {
                VLog.log(VLog.LEVEL_ERROR, "Download a new mesh URL " + meshURL);
            }
            return(newMesh);
        }