# Unity可自定义loading页的异步加载工具
**Repository Path**: jacobkay/unity-ZTools-LoadSceneAsync
## Basic Information
- **Project Name**: Unity可自定义loading页的异步加载工具
- **Description**: 可自定义loading页,prefab和scene都可以,获取当前加载进度,场景异步加载
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2022-09-22
- **Last Updated**: 2025-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Unity可自定义loading页的异步加载工具
#### 介绍
可自定义loading页,prefab和scene都可以,获取当前加载进度,场景异步加载
#### 安装教程
1. 下载代码,引入到工程中,核心脚本为SceneLoadTool
2. 单例类,直接调用接口,传入对应参数即可实现场景异步加载
#### 使用说明
1. SceneLoadTool为单例类
2. 引入ZTools命名空间
3. 使用预制体或者scene制作自己想要的loading页,通过LoadEvent(下方有介绍)监听加载进度
4. 使用SceneLoadWithPrefab或者SceneLoadWithScene传入跳转到的场景名称和loading页,即可完成场景的异步跳转
内含demo,可查看demo中SceneLoadTest.cs脚本
#### API说明:
1.LoadEvent(广播事件):获取加载进度,该方法一帧调用一次,加载未完成返回false,加载完成后返回true,即可停止方法的调用
```
///
/// 获取加载进度,加载成功后需返回true,否则为false;
///
public event Func LoadEvent;
```
2.DefaultLoadingPageName(属性):如果场景中的loading页数量较少,不需要每次都有变化,可以直接设置默认loading页名称,后期调用可不穿参数
```
///
/// 设置默认loading页面名称
///
public string DefaultLoadingPageName
{
set {}
}
```
**loading页面为预制体格式**
1. 场景加载,只传加载场景名称,loading页默认路径(Resources/Loading),默认single,无回调
```
///
/// 场景加载,loading页面路径和名称"Resources/Loading"
///
/// 加载场景名称
public void SceneLoadWithPrefab(string sceneName){}
```
2. 场景加载,传加载场景名称,loading页面路径,默认single,无回调
```
///
/// 场景加载
///
/// 加载场景名称
/// loading页面路径
public void SceneLoadWithPrefab(string sceneName, string loadObjPath){}
```
3. 场景加载,传加载场景名称,loading页面对象,默认single,无回调
```
///
/// 场景加载
///
/// 加载场景名称
/// loading页面对象
public void SceneLoadWithPrefab(string sceneName, GameObject loadObj){}
```
4. 场景加载,传加载场景名称,loading页面路径,加载模式,无回调
```
///
/// 场景加载
///
/// 加载场景名称
/// loading页面路径
/// 加载模式
public void SceneLoadWithPrefab(string sceneName, string loadObjPath, LoadSceneMode mode){}
```
5. 场景加载,传加载场景名称,loading页面对象,加载模式,无回调
```
///
/// 场景加载
///
/// 加载场景名称
/// loading页面对象
/// 加载模式
public void SceneLoadWithPrefab(string sceneName, GameObject loadObj, LoadSceneMode mode){}
```
6. 场景加载,传加载场景名称,loading页面路径,加载模式,回调函数
```
///
/// 场景加载
///
/// 加载场景名称
/// loading页面路径
/// 加载模式
/// 加载完回调
public void SceneLoadWithPrefab(string sceneName, string loadObjPath, LoadSceneMode mode, Action successCallBack){}
```
7.场景加载,传加载场景名称,loading页面对象,加载模式,回调函数
```
///
/// 场景加载
///
/// 加载场景名称
/// loading页面对象
/// 加载模式
/// 加载完回调
public void SceneLoadWithPrefab(string sceneName, GameObject loadObj, LoadSceneMode mode, Action successCallBack){}
```
**loading页面为预制体格式**
1. 场景加载,只传加载场景名称,loading场景名称默认为Loading,默认single,无回调
```
///
/// 场景加载,loading页面路径和名称"Resources/Loading"
///
/// 加载场景名称
public void SceneLoadWithScene(string sceneName){}
```
2. 场景加载,传加载场景名称,loading场景名称,默认single,无回调
```
///
/// 场景加载,loading页面路径和名称"Resources/Loading"
///
/// 加载场景名称
/// loading场景名称
public void SceneLoadWithScene(string sceneName, string loadSceneName){}
```
3.场景加载,传加载场景名称,loading场景名称,加载模式,无回调
```
///
/// 场景加载
///
/// 加载场景名称
/// loading页面路径
/// 加载模式
public void SceneLoadWithScene(string sceneName, string loadSceneName, LoadSceneMode mode){}
```
4.场景加载,传加载场景名称,loading场景名称,加载模式,回调函数
```
///
/// 场景加载
///
/// 加载场景名称
/// loading页面路径
/// 加载模式
/// 加载完回调
public void SceneLoadWithScene(string sceneName, string loadSceneName, LoadSceneMode mode, Action successCallBack){}
```
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)