Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
 private void OnImportingStart()
 {
     errorOccurred = false;
     ImportingStart?.Invoke();
 }