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