async Task LoadGltfSampleSetItem(SampleSetItem testCase, GameObject go, IDeferAgent deferAgent, SampleGroup loadTime = null) { var path = string.Format( #if UNITY_ANDROID && !UNITY_EDITOR "{0}" #else "file://{0}" #endif , testCase.path ); // Debug.LogFormat("Testing {0}", path); var gltfAsset = go.AddComponent <GltfAsset>(); var stopWatch = go.AddComponent <StopWatch>(); stopWatch.StartTime(); gltfAsset.loadOnStartup = false; var success = await gltfAsset.Load(path, null, deferAgent); Assert.IsTrue(success); stopWatch.StopTime(); if (loadTime != null) { Measure.Custom(loadTime, stopWatch.lastDuration); } }
public IEnumerator SmoothLoading(SampleSetItem testCase) { Debug.Log($"Testing {testCase.path}"); var go = new GameObject(); var deferAgent = go.AddComponent <TimeBudgetPerFrameDeferAgent>(); var task = LoadGltfSampleSetItem(testCase, go, deferAgent); yield return(Utils.WaitForTask(task)); Object.Destroy(go); }
// [UnityTest] // [UseGltfSampleSetTestCase(localSampleSetJsonPath)] // [Performance] // public IEnumerator UninterruptedLoadingLocal(SampleSetItem testCase) { // yield return UninterruptedLoadingTemplate(testCase); // } static IEnumerator UninterruptedLoadingTemplate(SampleSetItem testCase) { Debug.Log($"Testing {testCase.path}"); var go = new GameObject(); var deferAgent = new UninterruptedDeferAgent(); var task = LoadGltfSampleSetItem(testCase, go, deferAgent); yield return(Utils.WaitForTask(task)); Object.Destroy(go); }
public IEnumerator QuickLoad(SampleSetItem testCase) { #if UNITY_EDITOR Debug.Log($"Testing {testCase.path}"); var go = new GameObject(); var deferAgent = new UninterruptedDeferAgent(); var task = LoadGltfSampleSetItem(testCase, go, deferAgent); yield return(WaitForTask(task)); Object.Destroy(go); #endif }
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 gltf = new GLTFast(); var task = gltf.LoadGltfBinary(data, new Uri(testCase.path)); yield return(WaitForTask(task)); var success = task.Result; Assert.IsTrue(success); success = gltf.InstantiateGltf(go.transform); Assert.IsTrue(success); Object.Destroy(go); }
// [UnityTest] // [UseGltfSampleSetTestCase(localSampleSetJsonPath)] // [Performance] // public IEnumerator UninterruptedLoadingLocal(SampleSetItem testCase) { // yield return UninterruptedLoadingTemplate(testCase); // } static IEnumerator UninterruptedLoadingTemplate(SampleSetItem testCase) { Debug.Log($"Testing {testCase.path}"); var go = new GameObject(); var deferAgent = new UninterruptedDeferAgent(); var loadTime = new SampleGroup("LoadTime"); // First time without measuring var task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime); yield return(Utils.WaitForTask(task)); using (Measure.Frames().Scope()) { for (int i = 0; i < k_Repetitions; i++) { task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime); yield return(Utils.WaitForTask(task)); } } Object.Destroy(go); }
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); }
public IEnumerator SmoothLoading(SampleSetItem testCase) { Debug.Log($"Testing {testCase.path}"); var go = new GameObject(); var deferAgent = go.AddComponent <TimeBudgetPerFrameDeferAgent>(); SampleGroup loadTime = new SampleGroup("LoadTime"); // First time without measuring var task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent); yield return(Utils.WaitForTask(task)); using (Measure.Frames().Scope()) { for (int i = 0; i < k_Repetitions; i++) { task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime); yield return(Utils.WaitForTask(task)); // Wait one more frame. Usually some more action happens in this one. yield return(null); } } Object.Destroy(go); }
public IEnumerator UninterruptedLoading(SampleSetItem testCase) { yield return(UninterruptedLoadingTemplate(testCase)); }