示例#1
0
        public override async Task <bool> Load(
            string url,
            IDownloadProvider downloadProvider   = null,
            IDeferAgent deferAgent               = null,
            IMaterialGenerator materialGenerator = null,
            ILogger logger = null
            )
        {
            importer = new GltfImport(downloadProvider, deferAgent, materialGenerator);
            var success = await importer.Load(url);

            if (success)
            {
                var insta = (GameObjectBoundsInstantiator)GetDefaultInstantiator(logger);
                // Auto-Instantiate
                if (sceneId >= 0)
                {
                    success = importer.InstantiateScene(insta, sceneId);
                }
                else
                {
                    success = importer.InstantiateMainScene(insta);
                }

                if (success)
                {
                    SetBounds(insta);
                }
            }
            return(success);
        }
示例#2
0
        /// <summary>
        /// Creates an instance of the main scene
        /// </summary>
        /// <param name="logger">Used for message reporting</param>
        /// <returns>True if instantiation was successful.</returns>
        public bool Instantiate(ICodeLogger logger = null)
        {
            if (importer == null)
            {
                return(false);
            }
            var instantiator = GetDefaultInstantiator(logger);
            var success      = importer.InstantiateMainScene(instantiator);

            PostInstantiation(instantiator, success);
            return(success);
        }
示例#3
0
        /// <summary>
        /// Creates an instance of the main scene
        /// </summary>
        /// <param name="logger">Used for message reporting</param>
        /// <returns>True if instantiation was successful.</returns>
        public bool Instantiate(ILogger logger = null)
        {
            if (importer == null)
            {
                return(false);
            }
            var instantiator = GetDefaultInstantiator(logger);
            var success      = importer.InstantiateMainScene(instantiator);

            sceneInstance  = instantiator.sceneInstance;
            currentSceneId = success ? importer.defaultSceneIndex : (int?)null;
            return(success);
        }
        public IEnumerator LoadGlbFromMemory(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var data       = File.ReadAllBytes(testCase.path);
            var go         = new GameObject();
            var deferAgent = new UninterruptedDeferAgent();
            var logger     = new ConsoleLogger();
            var gltf       = new GltfImport(deferAgent: deferAgent, logger: logger);
            var task       = gltf.LoadGltfBinary(data, new Uri(testCase.path));

            yield return(Utils.WaitForTask(task));

            var success = task.Result;

            Assert.IsTrue(success);
            var instantiator = new GameObjectInstantiator(gltf, go.transform, logger);

            success = gltf.InstantiateMainScene(instantiator);
            Assert.IsTrue(success);
            Object.Destroy(go);
        }