//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 loyalsoft. All rights reserved.
// Homepage: http://www.game7000.com/
// Feedback: http://www.game7000.com/
//------------------------------------------------------------
using GameFramework.Resource;
using System;
using System.Collections.Generic;
namespace GameFramework.Scene
{
///
/// 场景管理器接口。
///
public interface ISceneManager
{
///
/// 加载场景成功事件。
///
event EventHandler LoadSceneSuccess;
///
/// 加载场景失败事件。
///
event EventHandler LoadSceneFailure;
///
/// 加载场景更新事件。
///
event EventHandler LoadSceneUpdate;
///
/// 加载场景时加载依赖资源事件。
///
event EventHandler LoadSceneDependencyAsset;
///
/// 卸载场景成功事件。
///
event EventHandler UnloadSceneSuccess;
///
/// 卸载场景失败事件。
///
event EventHandler UnloadSceneFailure;
///
/// 设置资源管理器。
///
/// 资源管理器。
void SetResourceManager(IResourceManager resourceManager);
///
/// 获取场景是否已加载。
///
/// 场景资源名称。
/// 场景是否已加载。
bool SceneIsLoaded(string sceneAssetName);
///
/// 获取已加载场景的资源名称。
///
/// 已加载场景的资源名称。
string[] GetLoadedSceneAssetNames();
///
/// 获取已加载场景的资源名称。
///
/// 已加载场景的资源名称。
void GetLoadedSceneAssetNames(List results);
///
/// 获取场景是否正在加载。
///
/// 场景资源名称。
/// 场景是否正在加载。
bool SceneIsLoading(string sceneAssetName);
///
/// 获取正在加载场景的资源名称。
///
/// 正在加载场景的资源名称。
string[] GetLoadingSceneAssetNames();
///
/// 获取正在加载场景的资源名称。
///
/// 正在加载场景的资源名称。
void GetLoadingSceneAssetNames(List results);
///
/// 获取场景是否正在卸载。
///
/// 场景资源名称。
/// 场景是否正在卸载。
bool SceneIsUnloading(string sceneAssetName);
///
/// 获取正在卸载场景的资源名称。
///
/// 正在卸载场景的资源名称。
string[] GetUnloadingSceneAssetNames();
///
/// 获取正在卸载场景的资源名称。
///
/// 正在卸载场景的资源名称。
void GetUnloadingSceneAssetNames(List results);
///
/// 检查场景资源是否存在。
///
/// 要检查场景资源的名称。
/// 场景资源是否存在。
bool HasScene(string sceneAssetName);
///
/// 加载场景。
///
/// 场景资源名称。
void LoadScene(string sceneAssetName);
///
/// 加载场景。
///
/// 场景资源名称。
/// 加载场景资源的优先级。
void LoadScene(string sceneAssetName, int priority);
///
/// 加载场景。
///
/// 场景资源名称。
/// 用户自定义数据。
void LoadScene(string sceneAssetName, object userData);
///
/// 加载场景。
///
/// 场景资源名称。
/// 加载场景资源的优先级。
/// 用户自定义数据。
void LoadScene(string sceneAssetName, int priority, object userData);
///
/// 卸载场景。
///
/// 场景资源名称。
void UnloadScene(string sceneAssetName);
///
/// 卸载场景。
///
/// 场景资源名称。
/// 用户自定义数据。
void UnloadScene(string sceneAssetName, object userData);
}
}