public async Task <GameObject> ImportModelFromNetwork(string objURL, string objName, string diffuseTexURL, string bumpTexURL, string specularTexURL, string opacityTexURL, string materialURL, ReferencedNumeric <float> downloadProgress, ImportOptions options) { if (loaderList == null) { loaderList = new List <Loader>(); } if (loaderList.Count == 0) { numTotalImports = 0;// files.Length; ImportingStart?.Invoke(); } Loader loader = CreateLoader("", true); if (loader == null) { throw new SystemException("Failed to import obj."); //return null; } numTotalImports++; loaderList.Add(loader); loader.buildOptions = options; allLoaded = false; if (string.IsNullOrWhiteSpace(objName)) { objName = ""; } ObjectImporter.downloadProgress = downloadProgress; //string objURL, string objName, string textureURL, string materialURL, ReferencedNumeric< float > downloadProgress, ImportOptions options GameObject loaded; try { loaded = await loader.LoadFromNetwork(objURL, diffuseTexURL, bumpTexURL, specularTexURL, opacityTexURL, materialURL, objName); } catch (Exception ex) { throw ex; } return(loaded); }
/// <summary> /// Request to load a file asynchronously. /// </summary> /// <param name="objName"></param> /// <param name="filePath"></param> /// <param name="parentObj"></param> /// <param name="options"></param> public async Task <GameObject> ImportModelAsync(string objName, string filePath, Transform parentObj, ImportOptions options, string texturesFolderPath = "", string materialsFolderPath = "") { if (loaderList == null) { loaderList = new List <Loader>(); } if (loaderList.Count == 0) { numTotalImports = 0;// files.Length; ImportingStart?.Invoke(); } string absolutePath = filePath.Contains("//") ? filePath : Path.GetFullPath(filePath); absolutePath = absolutePath.Replace('\\', '/'); Loader loader = CreateLoader(absolutePath); if (loader == null) { throw new SystemException("Failed to import obj."); //return null; } numTotalImports++; loaderList.Add(loader); loader.buildOptions = options; if (string.IsNullOrEmpty(objName)) { objName = Path.GetFileNameWithoutExtension(absolutePath); } allLoaded = false; GameObject loaded = await loader.Load(objName, absolutePath, parentObj, texturesFolderPath, materialsFolderPath); return(loaded); }
public void ImportModelFromNetworkWebGL(string objURL, string objName, string diffuseTexURL, string bumpTexURL, string specularTexURL, string opacityTexURL, string materialURL, ReferencedNumeric <float> downloadProgress, ImportOptions options, Action <GameObject> OnSuccess, Action <Exception> OnError) { if (loaderList == null) { loaderList = new List <Loader>(); } if (loaderList.Count == 0) { numTotalImports = 0;// files.Length; ImportingStart?.Invoke(); } Loader loader = CreateLoader("", true); if (loader == null) { OnError(new SystemException("Loader initialization failed due to unknown reasons.")); } numTotalImports++; loaderList.Add(loader); loader.buildOptions = options; allLoaded = false; if (string.IsNullOrWhiteSpace(objName)) { objName = ""; } ObjectImporter.downloadProgress = downloadProgress; StartCoroutine(loader.LoadFromNetworkWebGL(objURL, diffuseTexURL, bumpTexURL, specularTexURL, opacityTexURL, materialURL, objName, OnSuccess, OnError)); }
private void OnImportingStart() { errorOccurred = false; ImportingStart?.Invoke(); }