145 lines
4.7 KiB
C#
145 lines
4.7 KiB
C#
|
|
using System.Collections;
|
|||
|
|
using UnityEngine;
|
|||
|
|
using UnityEngine.Events;
|
|||
|
|
using YooAsset;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// YooAsset<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public partial class YooAssetManager
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
|
/// </summary>
|
|||
|
|
public T LoadAssetSync<T>(string packageName, string resourceName) where T : Object
|
|||
|
|
{
|
|||
|
|
AssetHandle assetHandle = packagesDic[packageName].LoadAssetSync<T>(resourceName);
|
|||
|
|
if (assetHandle.AssetObject != null)
|
|||
|
|
{
|
|||
|
|
return assetHandle.AssetObject as T;
|
|||
|
|
}
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20>첽<EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
|
/// </summary>
|
|||
|
|
public void LoadAssetAsync<T>(string packageName, string resourceName, UnityAction<T> callBack) where T : Object
|
|||
|
|
{
|
|||
|
|
StartCoroutine(IE_LoadAssetAsync<T>(packageName, resourceName, callBack));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20>첽<EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>Э<EFBFBD><D0AD>
|
|||
|
|
/// </summary>
|
|||
|
|
private IEnumerator IE_LoadAssetAsync<T>(string packageName, string resourceName, UnityAction<T> callBack) where T : Object
|
|||
|
|
{
|
|||
|
|
AssetHandle assetHandle = packagesDic[packageName].LoadAssetAsync<T>(resourceName);
|
|||
|
|
yield return assetHandle;
|
|||
|
|
callBack?.Invoke(assetHandle.AssetObject as T);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public T LoadSubAssetsSync<T>(string packageName, string resourceName) where T : Object
|
|||
|
|
{
|
|||
|
|
SubAssetsHandle subAssetsHandle = packagesDic[packageName].LoadSubAssetsSync<T>(resourceName);
|
|||
|
|
return subAssetsHandle as T;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20>첽<EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public void LoadSubAssetsAsync<T>(string packageName, string resourceName, string subResourcesName, UnityAction<T> callBack) where T : Object
|
|||
|
|
{
|
|||
|
|
StartCoroutine(IE_LoadSubAssetsAsync<T>(packageName, resourceName, subResourcesName, callBack));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20>첽<EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>
|
|||
|
|
/// </summary>
|
|||
|
|
private IEnumerator IE_LoadSubAssetsAsync<T>(string packageName, string resourceName, string subResourcesName, UnityAction<T> callBack) where T : Object
|
|||
|
|
{
|
|||
|
|
SubAssetsHandle handle = packagesDic[packageName].LoadSubAssetsAsync<T>(resourceName);
|
|||
|
|
yield return handle;
|
|||
|
|
var sprite = handle.GetSubAssetObject<T>(subResourcesName);
|
|||
|
|
callBack?.Invoke(handle as T);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20>첽<EFBFBD><ECB2BD><EFBFBD>س<EFBFBD><D8B3><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public void LoadSceneAsync(string packageName, string sceneName, UnityAction callBack)
|
|||
|
|
{
|
|||
|
|
StartCoroutine(IE_LoadSceneAsync(packageName, sceneName, callBack));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20>첽<EFBFBD><ECB2BD><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>
|
|||
|
|
/// </summary>
|
|||
|
|
private IEnumerator IE_LoadSceneAsync(string packageName, string sceneName, UnityAction callBack)
|
|||
|
|
{
|
|||
|
|
string location = sceneName;
|
|||
|
|
var sceneMode = UnityEngine.SceneManagement.LoadSceneMode.Single;
|
|||
|
|
bool suspendLoad = false;
|
|||
|
|
SceneHandle handle = packagesDic[packageName].LoadSceneAsync(location, sceneMode, suspendLoad);
|
|||
|
|
yield return handle;
|
|||
|
|
callBack?.Invoke();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ļ<EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public void LoadVideo(string packageName, string videoName, UnityAction<VideoClip> callBack)
|
|||
|
|
{
|
|||
|
|
StartCoroutine(IE_LoadVideo(packageName,videoName,callBack));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Э<EFBFBD><D0AD>
|
|||
|
|
/// </summary>
|
|||
|
|
private IEnumerator IE_LoadVideo(string packageName,string videoName,UnityAction<VideoClip> callBack)
|
|||
|
|
{
|
|||
|
|
var package = YooAssets.GetPackage(packageName);
|
|||
|
|
var handle = package.LoadRawFileAsync(videoName);
|
|||
|
|
yield return handle;
|
|||
|
|
|
|||
|
|
handle.GetRawFilePath();
|
|||
|
|
callBack?.Invoke();
|
|||
|
|
}
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// ж<><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ͷŷ<CDB7><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ȥ<EFBFBD>ͷ<EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
private void UnloadUnusedAssets(string packageName)
|
|||
|
|
{
|
|||
|
|
var package = YooAssets.GetPackage(packageName);
|
|||
|
|
package.UnloadUnusedAssets();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
|
|||
|
|
/// ע<>⣺<EFBFBD><E2A3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ڱ<EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="resourceName"></param>
|
|||
|
|
private void TryUnloadUnusedAsset(string packageName, string resourceName)
|
|||
|
|
{
|
|||
|
|
var package = YooAssets.GetPackage(packageName);
|
|||
|
|
package.TryUnloadUnusedAsset(resourceName);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// ǿ<><C7BF>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>ʵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// ע<>⣺Package<67><65><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD>ʱ<EFBFBD><CAB1>Ҳ<EFBFBD><D2B2><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ø÷<C3B8><C3B7><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
private void ForceUnloadAllAssets(string packageName)
|
|||
|
|
{
|
|||
|
|
var package = YooAssets.GetPackage(packageName);
|
|||
|
|
package.ForceUnloadAllAssets();
|
|||
|
|
}
|
|||
|
|
}
|