mirror of https://github.com/tuyoogame/YooAsset
Compare commits
5 Commits
19c46a2f60
...
3ca300d956
Author | SHA1 | Date |
---|---|---|
|
3ca300d956 | |
|
d1087aa74c | |
|
43c40e4bbe | |
|
d9c4e5336b | |
|
772198255a |
|
@ -2,6 +2,79 @@
|
||||||
|
|
||||||
All notable changes to this package will be documented in this file.
|
All notable changes to this package will be documented in this file.
|
||||||
|
|
||||||
|
## [1.4.17] - 2023-06-27
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- 优化了缓存的信息文件写入方式
|
||||||
|
|
||||||
|
- 离线模式支持内置资源解压到沙盒
|
||||||
|
|
||||||
|
- 资源包构建流程任务节点支持可扩展
|
||||||
|
|
||||||
|
```c#
|
||||||
|
using YooAsset.Editor
|
||||||
|
|
||||||
|
[TaskAttribute(ETaskPipeline.AllPipeline, 100, "自定义任务节点")]
|
||||||
|
public class CustomTask : IBuildTask
|
||||||
|
```
|
||||||
|
|
||||||
|
- 资源收集界面增加了LocationToLower选项
|
||||||
|
|
||||||
|
- 资源收集界面增加了IncludeAssetGUID选项
|
||||||
|
|
||||||
|
- IShareAssetPackRule 重命名为 ISharedPackRule
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- 新增了ResourcePackage.LoadAllAssetsAsync方法
|
||||||
|
|
||||||
|
```c#
|
||||||
|
/// <summary>
|
||||||
|
/// 异步加载资源包内所有资源对象
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="assetInfo">资源信息</param>
|
||||||
|
public AllAssetsOperationHandle LoadAllAssetsAsync(AssetInfo assetInfo)
|
||||||
|
```
|
||||||
|
|
||||||
|
- 新增了ResourcePackage.GetAssetInfoByGUID()方法
|
||||||
|
|
||||||
|
```c#
|
||||||
|
/// <summary>
|
||||||
|
/// 获取资源信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="assetGUID">资源GUID</param>
|
||||||
|
public AssetInfo GetAssetInfoByGUID(string assetGUID)
|
||||||
|
```
|
||||||
|
|
||||||
|
- 新增了场景加载参数suspendLoad
|
||||||
|
|
||||||
|
```c#
|
||||||
|
/// <summary>
|
||||||
|
/// 异步加载场景
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="location">场景的定位地址</param>
|
||||||
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
|
/// <param name="suspendLoad">场景加载到90%自动挂起</param>
|
||||||
|
/// <param name="priority">优先级</param>
|
||||||
|
public SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, bool suspendLoad = false, int priority = 100)
|
||||||
|
```
|
||||||
|
|
||||||
|
- Extension Sample 增加了GameObjectAssetReference示例脚本
|
||||||
|
|
||||||
|
- 新增加了ZeroRedundancySharedPackRule类(零冗余的共享资源打包规则)
|
||||||
|
|
||||||
|
- 新增加了FullRedundancySharedPackRule类(全部冗余的共享资源打包规则)
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- 移除了InitializeParameters.LocationToLower成员字段
|
||||||
|
- 移除了LoadSceneAsync方法里的activateOnLoad形参参数
|
||||||
|
- 移除了BuildParameters.AutoAnalyzeRedundancy成员字段
|
||||||
|
- 移除了DefaultShareAssetPackRule编辑器类
|
||||||
|
|
||||||
## [1.4.16] - 2023-06-14
|
## [1.4.16] - 2023-06-14
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
@ -169,7 +169,7 @@ namespace YooAsset
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 加载场景
|
/// 加载场景
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode, int priority)
|
public SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode, bool suspendLoad, int priority)
|
||||||
{
|
{
|
||||||
if (assetInfo.IsInvalid)
|
if (assetInfo.IsInvalid)
|
||||||
{
|
{
|
||||||
|
@ -190,9 +190,9 @@ namespace YooAsset
|
||||||
ProviderBase provider;
|
ProviderBase provider;
|
||||||
{
|
{
|
||||||
if (_simulationOnEditor)
|
if (_simulationOnEditor)
|
||||||
provider = new DatabaseSceneProvider(this, providerGUID, assetInfo, sceneMode, priority);
|
provider = new DatabaseSceneProvider(this, providerGUID, assetInfo, sceneMode, suspendLoad, priority);
|
||||||
else
|
else
|
||||||
provider = new BundledSceneProvider(this, providerGUID, assetInfo, sceneMode, priority);
|
provider = new BundledSceneProvider(this, providerGUID, assetInfo, sceneMode, suspendLoad, priority);
|
||||||
provider.InitSpawnDebugInfo();
|
provider.InitSpawnDebugInfo();
|
||||||
_providerList.Add(provider);
|
_providerList.Add(provider);
|
||||||
_providerDic.Add(providerGUID, provider);
|
_providerDic.Add(providerGUID, provider);
|
||||||
|
|
|
@ -69,6 +69,38 @@ namespace YooAsset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 解除场景加载挂起操作
|
||||||
|
/// </summary>
|
||||||
|
public bool UnSuspend()
|
||||||
|
{
|
||||||
|
if (IsValidWithWarning == false)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (SceneObject.IsValid())
|
||||||
|
{
|
||||||
|
if (Provider is DatabaseSceneProvider)
|
||||||
|
{
|
||||||
|
var temp = Provider as DatabaseSceneProvider;
|
||||||
|
return temp.UnSuspendLoad();
|
||||||
|
}
|
||||||
|
else if (Provider is BundledSceneProvider)
|
||||||
|
{
|
||||||
|
var temp = Provider as BundledSceneProvider;
|
||||||
|
return temp.UnSuspendLoad();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
YooLogger.Warning($"Scene is invalid : {SceneObject.name}");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否为主场景
|
/// 是否为主场景
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -10,13 +10,15 @@ namespace YooAsset
|
||||||
{
|
{
|
||||||
public readonly LoadSceneMode SceneMode;
|
public readonly LoadSceneMode SceneMode;
|
||||||
private readonly string _sceneName;
|
private readonly string _sceneName;
|
||||||
|
private readonly bool _suspendLoad;
|
||||||
private readonly int _priority;
|
private readonly int _priority;
|
||||||
private AsyncOperation _asyncOp;
|
private AsyncOperation _asyncOperation;
|
||||||
|
|
||||||
public BundledSceneProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo, LoadSceneMode sceneMode, int priority) : base(impl, providerGUID, assetInfo)
|
public BundledSceneProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo, LoadSceneMode sceneMode, bool suspendLoad, int priority) : base(impl, providerGUID, assetInfo)
|
||||||
{
|
{
|
||||||
SceneMode = sceneMode;
|
SceneMode = sceneMode;
|
||||||
_sceneName = Path.GetFileNameWithoutExtension(assetInfo.AssetPath);
|
_sceneName = Path.GetFileNameWithoutExtension(assetInfo.AssetPath);
|
||||||
|
_suspendLoad = suspendLoad;
|
||||||
_priority = priority;
|
_priority = priority;
|
||||||
}
|
}
|
||||||
public override void Update()
|
public override void Update()
|
||||||
|
@ -62,11 +64,11 @@ namespace YooAsset
|
||||||
if (Status == EStatus.Loading)
|
if (Status == EStatus.Loading)
|
||||||
{
|
{
|
||||||
// 注意:如果场景不存在则返回NULL
|
// 注意:如果场景不存在则返回NULL
|
||||||
_asyncOp = SceneManager.LoadSceneAsync(MainAssetInfo.AssetPath, SceneMode);
|
_asyncOperation = SceneManager.LoadSceneAsync(MainAssetInfo.AssetPath, SceneMode);
|
||||||
if (_asyncOp != null)
|
if (_asyncOperation != null)
|
||||||
{
|
{
|
||||||
_asyncOp.allowSceneActivation = true;
|
_asyncOperation.allowSceneActivation = !_suspendLoad;
|
||||||
_asyncOp.priority = _priority;
|
_asyncOperation.priority = _priority;
|
||||||
SceneObject = SceneManager.GetSceneAt(SceneManager.sceneCount - 1);
|
SceneObject = SceneManager.GetSceneAt(SceneManager.sceneCount - 1);
|
||||||
Status = EStatus.Checking;
|
Status = EStatus.Checking;
|
||||||
}
|
}
|
||||||
|
@ -82,8 +84,8 @@ namespace YooAsset
|
||||||
// 3. 检测加载结果
|
// 3. 检测加载结果
|
||||||
if (Status == EStatus.Checking)
|
if (Status == EStatus.Checking)
|
||||||
{
|
{
|
||||||
Progress = _asyncOp.progress;
|
Progress = _asyncOperation.progress;
|
||||||
if (_asyncOp.isDone)
|
if (_asyncOperation.isDone)
|
||||||
{
|
{
|
||||||
Status = SceneObject.IsValid() ? EStatus.Succeed : EStatus.Failed;
|
Status = SceneObject.IsValid() ? EStatus.Succeed : EStatus.Failed;
|
||||||
if (Status == EStatus.Failed)
|
if (Status == EStatus.Failed)
|
||||||
|
@ -95,5 +97,17 @@ namespace YooAsset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 解除场景加载挂起操作
|
||||||
|
/// </summary>
|
||||||
|
public bool UnSuspendLoad()
|
||||||
|
{
|
||||||
|
if (_asyncOperation == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
_asyncOperation.allowSceneActivation = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,12 +6,14 @@ namespace YooAsset
|
||||||
internal sealed class DatabaseSceneProvider : ProviderBase
|
internal sealed class DatabaseSceneProvider : ProviderBase
|
||||||
{
|
{
|
||||||
public readonly LoadSceneMode SceneMode;
|
public readonly LoadSceneMode SceneMode;
|
||||||
|
private readonly bool _suspendLoad;
|
||||||
private readonly int _priority;
|
private readonly int _priority;
|
||||||
private AsyncOperation _asyncOp;
|
private AsyncOperation _asyncOperation;
|
||||||
|
|
||||||
public DatabaseSceneProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo, LoadSceneMode sceneMode, int priority) : base(impl, providerGUID, assetInfo)
|
public DatabaseSceneProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo, LoadSceneMode sceneMode, bool suspendLoad, int priority) : base(impl, providerGUID, assetInfo)
|
||||||
{
|
{
|
||||||
SceneMode = sceneMode;
|
SceneMode = sceneMode;
|
||||||
|
_suspendLoad = suspendLoad;
|
||||||
_priority = priority;
|
_priority = priority;
|
||||||
}
|
}
|
||||||
public override void Update()
|
public override void Update()
|
||||||
|
@ -52,11 +54,11 @@ namespace YooAsset
|
||||||
{
|
{
|
||||||
LoadSceneParameters loadSceneParameters = new LoadSceneParameters();
|
LoadSceneParameters loadSceneParameters = new LoadSceneParameters();
|
||||||
loadSceneParameters.loadSceneMode = SceneMode;
|
loadSceneParameters.loadSceneMode = SceneMode;
|
||||||
_asyncOp = UnityEditor.SceneManagement.EditorSceneManager.LoadSceneAsyncInPlayMode(MainAssetInfo.AssetPath, loadSceneParameters);
|
_asyncOperation = UnityEditor.SceneManagement.EditorSceneManager.LoadSceneAsyncInPlayMode(MainAssetInfo.AssetPath, loadSceneParameters);
|
||||||
if (_asyncOp != null)
|
if (_asyncOperation != null)
|
||||||
{
|
{
|
||||||
_asyncOp.allowSceneActivation = true;
|
_asyncOperation.allowSceneActivation = !_suspendLoad;
|
||||||
_asyncOp.priority = _priority;
|
_asyncOperation.priority = _priority;
|
||||||
SceneObject = SceneManager.GetSceneAt(SceneManager.sceneCount - 1);
|
SceneObject = SceneManager.GetSceneAt(SceneManager.sceneCount - 1);
|
||||||
Status = EStatus.Checking;
|
Status = EStatus.Checking;
|
||||||
}
|
}
|
||||||
|
@ -72,8 +74,8 @@ namespace YooAsset
|
||||||
// 3. 检测加载结果
|
// 3. 检测加载结果
|
||||||
if (Status == EStatus.Checking)
|
if (Status == EStatus.Checking)
|
||||||
{
|
{
|
||||||
Progress = _asyncOp.progress;
|
Progress = _asyncOperation.progress;
|
||||||
if (_asyncOp.isDone)
|
if (_asyncOperation.isDone)
|
||||||
{
|
{
|
||||||
Status = SceneObject.IsValid() ? EStatus.Succeed : EStatus.Failed;
|
Status = SceneObject.IsValid() ? EStatus.Succeed : EStatus.Failed;
|
||||||
if (Status == EStatus.Failed)
|
if (Status == EStatus.Failed)
|
||||||
|
@ -86,5 +88,17 @@ namespace YooAsset
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 解除场景加载挂起操作
|
||||||
|
/// </summary>
|
||||||
|
public bool UnSuspendLoad()
|
||||||
|
{
|
||||||
|
if (_asyncOperation == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
_asyncOperation.allowSceneActivation = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -455,12 +455,13 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="location">场景的定位地址</param>
|
/// <param name="location">场景的定位地址</param>
|
||||||
/// <param name="sceneMode">场景加载模式</param>
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
|
/// <param name="suspendLoad">场景加载到90%自动挂起</param>
|
||||||
/// <param name="priority">优先级</param>
|
/// <param name="priority">优先级</param>
|
||||||
public SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, int priority = 100)
|
public SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, bool suspendLoad = false, int priority = 100)
|
||||||
{
|
{
|
||||||
DebugCheckInitialize();
|
DebugCheckInitialize();
|
||||||
AssetInfo assetInfo = ConvertLocationToAssetInfo(location, null);
|
AssetInfo assetInfo = ConvertLocationToAssetInfo(location, null);
|
||||||
var handle = _assetSystemImpl.LoadSceneAsync(assetInfo, sceneMode, priority);
|
var handle = _assetSystemImpl.LoadSceneAsync(assetInfo, sceneMode, suspendLoad, priority);
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -469,11 +470,12 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="assetInfo">场景的资源信息</param>
|
/// <param name="assetInfo">场景的资源信息</param>
|
||||||
/// <param name="sceneMode">场景加载模式</param>
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
|
/// <param name="suspendLoad">场景加载到90%自动挂起</param>
|
||||||
/// <param name="priority">优先级</param>
|
/// <param name="priority">优先级</param>
|
||||||
public SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode = LoadSceneMode.Single, int priority = 100)
|
public SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode = LoadSceneMode.Single, bool suspendLoad = false, int priority = 100)
|
||||||
{
|
{
|
||||||
DebugCheckInitialize();
|
DebugCheckInitialize();
|
||||||
var handle = _assetSystemImpl.LoadSceneAsync(assetInfo, sceneMode, priority);
|
var handle = _assetSystemImpl.LoadSceneAsync(assetInfo, sceneMode, suspendLoad, priority);
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -128,11 +128,12 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="location">场景的定位地址</param>
|
/// <param name="location">场景的定位地址</param>
|
||||||
/// <param name="sceneMode">场景加载模式</param>
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
|
/// <param name="suspendLoad">场景加载到90%自动挂起</param>
|
||||||
/// <param name="priority">优先级</param>
|
/// <param name="priority">优先级</param>
|
||||||
public static SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, int priority = 100)
|
public static SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, bool suspendLoad = false, int priority = 100)
|
||||||
{
|
{
|
||||||
DebugCheckDefaultPackageValid();
|
DebugCheckDefaultPackageValid();
|
||||||
return _defaultPackage.LoadSceneAsync(location, sceneMode, priority);
|
return _defaultPackage.LoadSceneAsync(location, sceneMode, suspendLoad, priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -140,11 +141,12 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="assetInfo">场景的资源信息</param>
|
/// <param name="assetInfo">场景的资源信息</param>
|
||||||
/// <param name="sceneMode">场景加载模式</param>
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
|
/// <param name="suspendLoad">场景加载到90%自动挂起</param>
|
||||||
/// <param name="priority">优先级</param>
|
/// <param name="priority">优先级</param>
|
||||||
public static SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode = LoadSceneMode.Single, int priority = 100)
|
public static SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode = LoadSceneMode.Single, bool suspendLoad = false, int priority = 100)
|
||||||
{
|
{
|
||||||
DebugCheckDefaultPackageValid();
|
DebugCheckDefaultPackageValid();
|
||||||
return _defaultPackage.LoadSceneAsync(assetInfo, sceneMode, priority);
|
return _defaultPackage.LoadSceneAsync(assetInfo, sceneMode, suspendLoad, priority);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "com.tuyoogame.yooasset",
|
"name": "com.tuyoogame.yooasset",
|
||||||
"displayName": "YooAsset",
|
"displayName": "YooAsset",
|
||||||
"version": "1.4.16",
|
"version": "1.4.17",
|
||||||
"unity": "2019.4",
|
"unity": "2019.4",
|
||||||
"description": "unity3d resources management system.",
|
"description": "unity3d resources management system.",
|
||||||
"author": {
|
"author": {
|
||||||
|
|
Loading…
Reference in New Issue