using System; using NBC; using NBC.Asset; using UnityEngine; using UnityEngine.SceneManagement; namespace NBF { public class LoadSceneTask : NTask { public LoadSceneTask(string sceneName, Action addAssetCallback = null) { _sceneName = sceneName; _addAssetCallback = addAssetCallback; } private readonly Action _addAssetCallback; private readonly string _sceneName; // private SceneProvider _sceneAsset; private AsyncOperation _asyncOperation; protected override void OnStart() { Log.Info($"加载场景=={_sceneName}"); // var scenePath = $"scene/{_sceneName}"; _asyncOperation = SceneManager.LoadSceneAsync(_sceneName); // _sceneAsset = NBC.Asset.Assets.LoadScene(scenePath); // Assets.StompyRobot.SRDebugger.Scripts.Services.Implementation.ConsoleFilterStateService } protected override NTaskStatus OnProcess() { // if (_sceneAsset != null) // { // if (_sceneAsset.IsDone) // { // if (_addAssetCallback != null) // { // _addAssetCallback(_sceneAsset); //加入缓存,以便离开战斗释放 // } // // _addAssetCallback?.Invoke(_sceneAsset); // return NTaskStatus.Success; // } // } if (_asyncOperation != null) { if (_asyncOperation.isDone) { // if (_addAssetCallback != null) // { // _addAssetCallback(_sceneAsset); //加入缓存,以便离开战斗释放 // } // // _addAssetCallback?.Invoke(_sceneAsset); return NTaskStatus.Success; } } return NTaskStatus.Running; } } }