TheInitialProject/Assets/CaoCao/Scripts/Editor/XAsset/Simulation/EditorSceneHandler.cs
2024-10-23 16:59:02 +08:00

49 lines
1.3 KiB
C#

using CaoCao.XAsset;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace CaoCao.Editor
{
public struct EditorSceneHandler : ISceneHandler
{
public void OnStart(SceneRequest request)
{
}
public void Update(SceneRequest request)
{
}
public void Release(SceneRequest request)
{
}
public AsyncOperation LoadSceneAsync(SceneRequest request)
{
var parameters = new LoadSceneParameters
{loadSceneMode = request.withAdditive ? LoadSceneMode.Additive : LoadSceneMode.Single};
return EditorSceneManager.LoadSceneAsyncInPlayMode(request.path, parameters);
}
public bool IsReady(SceneRequest request1)
{
return true;
}
public void WaitForCompletion(SceneRequest request)
{
var parameters = new LoadSceneParameters
{loadSceneMode = request.withAdditive ? LoadSceneMode.Additive : LoadSceneMode.Single};
EditorSceneManager.LoadSceneInPlayMode(request.path, parameters);
request.SetResult(Request.Result.Success);
}
public float progressRate => 1;
public static ISceneHandler CreateInstance()
{
return new EditorSceneHandler();
}
}
}