64 lines
2.1 KiB
C#
64 lines
2.1 KiB
C#
using System;
|
|
using NBC;
|
|
using NBC.Asset;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace NBF
|
|
{
|
|
public class LoadSceneTask : NTask
|
|
{
|
|
public LoadSceneTask(string sceneName, Action<SceneProvider> addAssetCallback = null)
|
|
{
|
|
_sceneName = sceneName;
|
|
_addAssetCallback = addAssetCallback;
|
|
}
|
|
|
|
private readonly Action<SceneProvider> _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;
|
|
}
|
|
}
|
|
} |