mirror of
https://github.com/tuyoogame/YooAsset.git
synced 2026-05-26 02:30:18 +00:00
Update document
This commit is contained in:
120
Docs/YooAssetLoader.md
Normal file
120
Docs/YooAssetLoader.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# 资源加载
|
||||
|
||||
在加载资源对象的时候只需要提供相对路径,统一约定该相对路径名称为:location
|
||||
|
||||
资源加载接口:
|
||||
|
||||
- YooAssets.LoadAssetSync() 同步加载资源对象接口
|
||||
- YooAssets.LoadSubAssetsSync() 同步加载子资源对象接口
|
||||
- YooAssets.LoadAssetAsync() 异步加载资源对象接口
|
||||
- YooAssets.LoadSubAssetsAsync() 异步加载子资源对象接口
|
||||
- YooAssets.LoadSceneAsync() 异步加载场景接口
|
||||
|
||||
**加载路径的匹配方式**
|
||||
|
||||
````C#
|
||||
// 不带扩展名的模糊匹配
|
||||
YooAssets.LoadAssetAsync<AudioClip>("Audio/bgMusic");
|
||||
|
||||
// 带扩展名的精准匹配
|
||||
YooAssets.LoadAssetAsync<AudioClip>("Audio/bgMusic.mp3");
|
||||
````
|
||||
|
||||
**异步加载范例**
|
||||
|
||||
````C#
|
||||
// 委托加载方式
|
||||
void Start()
|
||||
{
|
||||
AssetOperationHandle handle = YooAssets.LoadAssetAsync<AudioClip>("Audio/bgMusic.mp3");
|
||||
handle.Completed += Handle_Completed;
|
||||
}
|
||||
void Handle_Completed(AssetOperationHandle handle)
|
||||
{
|
||||
AudioClip audioClip = handle.AssetObject as AudioClip;
|
||||
}
|
||||
````
|
||||
````C#
|
||||
// 协程加载方式
|
||||
void Start()
|
||||
{
|
||||
this.StartCoroutine(AsyncLoad());
|
||||
}
|
||||
IEnumerator AsyncLoad()
|
||||
{
|
||||
AssetOperationHandle handle = YooAssets.LoadAssetAsync<AudioClip>("Audio/bgMusic.mp3");
|
||||
yield return handle;
|
||||
AudioClip audioClip = handle.AssetObject as AudioClip;
|
||||
}
|
||||
````
|
||||
````C#
|
||||
// Task加载方式
|
||||
async void Start()
|
||||
{
|
||||
await AsyncLoad();
|
||||
}
|
||||
async Task AsyncLoad()
|
||||
{
|
||||
AssetOperationHandle handle = YooAssets.LoadAssetAsync<AudioClip>("Audio/bgMusic.mp3");
|
||||
await handle.Task;
|
||||
AudioClip audioClip = handle.AssetObject as AudioClip;
|
||||
}
|
||||
````
|
||||
|
||||
**资源卸载范例**
|
||||
|
||||
````C#
|
||||
void Start()
|
||||
{
|
||||
AssetOperationHandle handle = YooAssets.LoadAssetAsync<AudioClip>("Audio/bgMusic.mp3");
|
||||
|
||||
...
|
||||
|
||||
handle.Release();
|
||||
}
|
||||
````
|
||||
|
||||
**预制体同步加载范例**
|
||||
|
||||
````C#
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>(location);
|
||||
GameObject go = handle.InstantiateObject;
|
||||
````
|
||||
|
||||
````c#
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>(location);
|
||||
GameObject go = UnityEngine.Object.Instantiate(handle.AssetObject as GameObject);
|
||||
````
|
||||
|
||||
**子对象同步加载范例**
|
||||
|
||||
例如:通过TexturePacker创建的图集,如果需要访问图集的精灵对象,可以通过子对象加载接口。
|
||||
|
||||
````c#
|
||||
var handle = YooAssets.LoadSubAssetsSync<Sprite>(location);
|
||||
foreach (var asset in handle.AllAssets)
|
||||
{
|
||||
Debug.Log($"Sprite name is {asset.name}");
|
||||
}
|
||||
````
|
||||
|
||||
**场景异步加载范例**
|
||||
|
||||
````c#
|
||||
void Start()
|
||||
{
|
||||
// 场景加载参数
|
||||
SceneInstanceParam param = new SceneInstanceParam();
|
||||
param.LoadMode = UnityEngine.SceneManagement.LoadSceneMode.Single;
|
||||
param.ActivateOnLoad = true;
|
||||
|
||||
AssetOperationHandle handle = YooAssets.LoadSceneAsync("Scene/Login", param);
|
||||
handle.Completed += Handle_Completed;
|
||||
}
|
||||
void Handle_Completed(AssetOperationHandle handle)
|
||||
{
|
||||
SceneInstance instance = handle.AssetInstance as SceneInstance;
|
||||
Debug.Log(instance.Scene.name);
|
||||
}
|
||||
````
|
||||
|
||||
Reference in New Issue
Block a user