public override void ProvideAsync(AssetAsyncLoadHandle loadHandle, Type typ) { if (!TryGetABContext(loadHandle.Location, out var abPathContext)) { return; } var abInstance = FindOrCreateABInstance(abPathContext.ABName, loadHandle.Container); abInstance.LoadAssetAsync(abPathContext.Path, unityObject => { loadHandle.Asset.SetAsset(unityObject, abInstance); }, typ); }
private static IEnumerator SimulateDelayLoadScene(AssetAsyncLoadHandle loadHandle, bool add) { yield return(DEBUG_WAIT); var asyncOperation = SceneManager.LoadSceneAsync(loadHandle.Location + ".unity", add ? LoadSceneMode.Additive : LoadSceneMode.Single); while (!asyncOperation.isDone) { yield return(null); } loadHandle.Complete(); }
private IEnumerator SimulateDelayLoad(AssetAsyncLoadHandle loadHandle, Type typ) { yield return(DEBUG_WAIT); var path = loadHandle.Location; if (ConvertPath(ref path) || loadHandle.Location.StartsWith("Assets")) { loadHandle.Location = path; #if UNITY_EDITOR var unityObject = UnityEditor.AssetDatabase.LoadAssetAtPath(loadHandle.Location, typ); loadHandle.Asset.SetAsset(unityObject, null); #endif } else { var req = Resources.LoadAsync(loadHandle.Location, typ); req.completed += operation => { loadHandle.Asset.SetAsset(operation.isDone ? req.asset : null, null); }; } }
public override void ProvideSceneAsync(AssetAsyncLoadHandle loadHandle, bool add) { var service = CSharpServiceManager.Get <GlobalCoroutineRunnerService>(CSharpServiceManager.ServiceType.COROUTINE_SERVICE); service.StartCoroutine(SimulateDelayLoadScene(loadHandle, add)); }
public override void ProvideSceneAsync(AssetAsyncLoadHandle loadHandle, bool add) { }
public abstract void ProvideSceneAsync(AssetAsyncLoadHandle loadHandle, bool add);
public abstract void ProvideAsync(AssetAsyncLoadHandle loadHandle, Type typ);