SceneModuleUniTask¶
- 种类:
static class - 命名空间:
Runestone.AesirModules - 程序集:
Runestone.AesirModules.UniTask
继承链: System.Object → SceneModuleUniTask
声明¶
SceneModule 的 UniTask 适配 API——游戏工程包含 UniTask 时(宏 AESIR_MODULES_UNITASK 自动维护), 提供可 await 的场景加载/卸载流程。本类型位于独立适配程序集 Runestone.AesirModules.UniTask,未包含 UniTask 时整体不编译,公开 API 与 SceneModule 静态门面一一对应。 失败语义:场景路径无效、引用无效(不在 BuildSettings)、Addressable 场景等失败情形, await 侧抛出 InvalidOperationException——具体原因已由 SceneModule 输出到 Console。
取消语义:取消仅中止等待(await 侧抛 OperationCanceledException), 底层加载/卸载流程继续完成(Unity 场景操作不支持中途取消);SceneModule 宿主被销毁时 内部流程静默中止,等待方同样以取消收场(不会无限悬挂)。
方法¶
声明的方法
| 名称 | 描述 |
|---|---|
LoadSceneAdditiveAsync(SceneAssetWrapper, Action<float>, CancellationToken) |
加载场景并等待完成。Additive 模式。通过 SceneAssetWrapper 指定场景。 引用无效(空/不在 BuildSettings)或为 Addressable 场景时抛出 InvalidOperationException。 |
LoadSceneAdditiveAsync(string, Action<float>, CancellationToken) |
加载场景并等待完成。Additive 模式:纯叠加、不改变激活场景(对齐 Unity 原生语义),并记入叠加追踪。 约定:请勿对同一路径重复叠加加载——Unity 会加载两个场景实例,而追踪列表按路径粒度只记录一次。 |
LoadSceneSingleAsync(SceneAssetWrapper, Action<float>, CancellationToken) |
加载场景并等待完成。Single 模式。通过 SceneAssetWrapper 指定场景。 引用无效(空/不在 BuildSettings)或为 Addressable 场景时抛出 InvalidOperationException。 |
LoadSceneSingleAsync(string, Action<float>, CancellationToken) |
加载场景并等待完成。Single 模式:卸载全部场景、重设激活场景、加载成功后清空叠加追踪(失败时保留)。 |
ReloadSceneAsync(CancellationToken) |
重新加载当前激活场景并等待完成。异步 Single 模式,加载成功后清空叠加场景追踪。 编辑器中激活场景尚未保存(无有效路径)时抛出 InvalidOperationException。 |
UnloadAllAddedScenesAsync(CancellationToken) |
卸载所有经本模块叠加加载的场景并等待完成。单个场景卸载失败(场景已被外部卸载)时跳过并告警,不影响其余场景。 |
UnloadSceneAsync(SceneAssetWrapper, CancellationToken) |
卸载场景并等待完成。通过 SceneAssetWrapper 指定场景。 |
UnloadSceneAsync(string, CancellationToken) |
卸载场景并等待完成。若该场景在叠加追踪列表中则自动移出。 场景不存在等失败情形抛出 InvalidOperationException。 |
继承的方法
| 名称 | 描述 | 声明类型 |
|---|---|---|
GetType() |
— | object |
Equals(object) |
— | object |
GetHashCode() |
— | object |
ToString() |
— | object |
MemberwiseClone() |
— | object |
Finalize() |
— | object |
LoadSceneAdditiveAsync(SceneAssetWrapper, Action, CancellationToken)¶
加载场景并等待完成。Additive 模式。通过 SceneAssetWrapper 指定场景。 引用无效(空/不在 BuildSettings)或为 Addressable 场景时抛出 InvalidOperationException。
public static UniTask LoadSceneAdditiveAsync(SceneAssetWrapper sceneRef, Action<float> onProgress = null, CancellationToken cancellationToken = null)
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sceneRef |
SceneAssetWrapper |
— |
onProgress |
Action<float> |
— |
cancellationToken |
CancellationToken |
— |
返回值
| 类型 | 说明 |
|---|---|
UniTask |
— |
LoadSceneAdditiveAsync(string, Action, CancellationToken)¶
加载场景并等待完成。Additive 模式:纯叠加、不改变激活场景(对齐 Unity 原生语义),并记入叠加追踪。 约定:请勿对同一路径重复叠加加载——Unity 会加载两个场景实例,而追踪列表按路径粒度只记录一次。
public static UniTask LoadSceneAdditiveAsync(string scenePath, Action<float> onProgress = null, CancellationToken cancellationToken = null)
参数
| 名称 | 类型 | 说明 |
|---|---|---|
scenePath |
string |
— |
onProgress |
Action<float> |
— |
cancellationToken |
CancellationToken |
— |
返回值
| 类型 | 说明 |
|---|---|
UniTask |
— |
LoadSceneSingleAsync(SceneAssetWrapper, Action, CancellationToken)¶
加载场景并等待完成。Single 模式。通过 SceneAssetWrapper 指定场景。 引用无效(空/不在 BuildSettings)或为 Addressable 场景时抛出 InvalidOperationException。
public static UniTask LoadSceneSingleAsync(SceneAssetWrapper sceneRef, Action<float> onProgress = null, CancellationToken cancellationToken = null)
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sceneRef |
SceneAssetWrapper |
— |
onProgress |
Action<float> |
逐帧进度回调(0-1,已按 SceneModuleConfigSO.progressCap 归一化,默认 0.9),随等待期间持续报告。 |
cancellationToken |
CancellationToken |
取消令牌(仅中止等待,流程本身继续完成)。 |
返回值
| 类型 | 说明 |
|---|---|
UniTask |
— |
LoadSceneSingleAsync(string, Action, CancellationToken)¶
加载场景并等待完成。Single 模式:卸载全部场景、重设激活场景、加载成功后清空叠加追踪(失败时保留)。
public static UniTask LoadSceneSingleAsync(string scenePath, Action<float> onProgress = null, CancellationToken cancellationToken = null)
参数
| 名称 | 类型 | 说明 |
|---|---|---|
scenePath |
string |
场景路径(须已登记 BuildSettings)。 |
onProgress |
Action<float> |
逐帧进度回调(0-1,已按 SceneModuleConfigSO.progressCap 归一化,默认 0.9),随等待期间持续报告。 |
cancellationToken |
CancellationToken |
取消令牌(仅中止等待,流程本身继续完成)。 |
返回值
| 类型 | 说明 |
|---|---|
UniTask |
— |
ReloadSceneAsync(CancellationToken)¶
重新加载当前激活场景并等待完成。异步 Single 模式,加载成功后清空叠加场景追踪。 编辑器中激活场景尚未保存(无有效路径)时抛出 InvalidOperationException。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
cancellationToken |
CancellationToken |
— |
返回值
| 类型 | 说明 |
|---|---|
UniTask |
— |
UnloadAllAddedScenesAsync(CancellationToken)¶
卸载所有经本模块叠加加载的场景并等待完成。单个场景卸载失败(场景已被外部卸载)时跳过并告警,不影响其余场景。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
cancellationToken |
CancellationToken |
— |
返回值
| 类型 | 说明 |
|---|---|
UniTask |
— |
UnloadSceneAsync(SceneAssetWrapper, CancellationToken)¶
卸载场景并等待完成。通过 SceneAssetWrapper 指定场景。
public static UniTask UnloadSceneAsync(SceneAssetWrapper sceneRef, CancellationToken cancellationToken = null)
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sceneRef |
SceneAssetWrapper |
— |
cancellationToken |
CancellationToken |
— |
返回值
| 类型 | 说明 |
|---|---|
UniTask |
— |
UnloadSceneAsync(string, CancellationToken)¶
卸载场景并等待完成。若该场景在叠加追踪列表中则自动移出。 场景不存在等失败情形抛出 InvalidOperationException。
public static UniTask UnloadSceneAsync(string scenePath, CancellationToken cancellationToken = null)
参数
| 名称 | 类型 | 说明 |
|---|---|---|
scenePath |
string |
— |
cancellationToken |
CancellationToken |
— |
返回值
| 类型 | 说明 |
|---|---|
UniTask |
— |
Additional Notes¶
首个
## Additional Notes是增量生成文档标识符,请勿修改标题级别和内容!本文档由Script Doc Generator辅助生成。