parent
73fa5768b9
commit
90d8842f06
|
@ -147,7 +147,7 @@ namespace YooAsset
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 加载场景
|
/// 加载场景
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode, bool activateOnLoad, int priority)
|
public SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode, int priority)
|
||||||
{
|
{
|
||||||
if (assetInfo.IsInvalid)
|
if (assetInfo.IsInvalid)
|
||||||
{
|
{
|
||||||
|
@ -168,9 +168,9 @@ namespace YooAsset
|
||||||
ProviderBase provider;
|
ProviderBase provider;
|
||||||
{
|
{
|
||||||
if (_simulationOnEditor)
|
if (_simulationOnEditor)
|
||||||
provider = new DatabaseSceneProvider(this, providerGUID, assetInfo, sceneMode, activateOnLoad, priority);
|
provider = new DatabaseSceneProvider(this, providerGUID, assetInfo, sceneMode, priority);
|
||||||
else
|
else
|
||||||
provider = new BundledSceneProvider(this, providerGUID, assetInfo, sceneMode, activateOnLoad, priority);
|
provider = new BundledSceneProvider(this, providerGUID, assetInfo, sceneMode, priority);
|
||||||
provider.InitSpawnDebugInfo();
|
provider.InitSpawnDebugInfo();
|
||||||
_providerList.Add(provider);
|
_providerList.Add(provider);
|
||||||
_providerDic.Add(providerGUID, provider);
|
_providerDic.Add(providerGUID, provider);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
namespace YooAsset
|
namespace YooAsset
|
||||||
{
|
{
|
||||||
public class SceneOperationHandle : OperationHandleBase
|
public class SceneOperationHandle : OperationHandleBase
|
||||||
{
|
{
|
||||||
private System.Action<SceneOperationHandle> _callback;
|
private System.Action<SceneOperationHandle> _callback;
|
||||||
internal string PackageName { set; get; }
|
internal string PackageName { set; get; }
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ namespace YooAsset
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 激活场景
|
/// 激活场景(当同时存在多个场景时用于切换激活场景)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool ActivateScene()
|
public bool ActivateScene()
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,15 +10,13 @@ namespace YooAsset
|
||||||
{
|
{
|
||||||
public readonly LoadSceneMode SceneMode;
|
public readonly LoadSceneMode SceneMode;
|
||||||
private readonly string _sceneName;
|
private readonly string _sceneName;
|
||||||
private readonly bool _activateOnLoad;
|
|
||||||
private readonly int _priority;
|
private readonly int _priority;
|
||||||
private AsyncOperation _asyncOp;
|
private AsyncOperation _asyncOp;
|
||||||
|
|
||||||
public BundledSceneProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo, LoadSceneMode sceneMode, bool activateOnLoad, int priority) : base(impl, providerGUID, assetInfo)
|
public BundledSceneProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo, LoadSceneMode sceneMode, int priority) : base(impl, providerGUID, assetInfo)
|
||||||
{
|
{
|
||||||
SceneMode = sceneMode;
|
SceneMode = sceneMode;
|
||||||
_sceneName = Path.GetFileNameWithoutExtension(assetInfo.AssetPath);
|
_sceneName = Path.GetFileNameWithoutExtension(assetInfo.AssetPath);
|
||||||
_activateOnLoad = activateOnLoad;
|
|
||||||
_priority = priority;
|
_priority = priority;
|
||||||
}
|
}
|
||||||
public override void Update()
|
public override void Update()
|
||||||
|
@ -87,9 +85,6 @@ namespace YooAsset
|
||||||
Progress = _asyncOp.progress;
|
Progress = _asyncOp.progress;
|
||||||
if (_asyncOp.isDone)
|
if (_asyncOp.isDone)
|
||||||
{
|
{
|
||||||
if (SceneObject.IsValid() && _activateOnLoad)
|
|
||||||
SceneManager.SetActiveScene(SceneObject);
|
|
||||||
|
|
||||||
Status = SceneObject.IsValid() ? EStatus.Succeed : EStatus.Failed;
|
Status = SceneObject.IsValid() ? EStatus.Succeed : EStatus.Failed;
|
||||||
if (Status == EStatus.Failed)
|
if (Status == EStatus.Failed)
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,14 +6,12 @@ namespace YooAsset
|
||||||
internal sealed class DatabaseSceneProvider : ProviderBase
|
internal sealed class DatabaseSceneProvider : ProviderBase
|
||||||
{
|
{
|
||||||
public readonly LoadSceneMode SceneMode;
|
public readonly LoadSceneMode SceneMode;
|
||||||
private readonly bool _activateOnLoad;
|
|
||||||
private readonly int _priority;
|
private readonly int _priority;
|
||||||
private AsyncOperation _asyncOp;
|
private AsyncOperation _asyncOp;
|
||||||
|
|
||||||
public DatabaseSceneProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo, LoadSceneMode sceneMode, bool activateOnLoad, int priority) : base(impl, providerGUID, assetInfo)
|
public DatabaseSceneProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo, LoadSceneMode sceneMode, int priority) : base(impl, providerGUID, assetInfo)
|
||||||
{
|
{
|
||||||
SceneMode = sceneMode;
|
SceneMode = sceneMode;
|
||||||
_activateOnLoad = activateOnLoad;
|
|
||||||
_priority = priority;
|
_priority = priority;
|
||||||
}
|
}
|
||||||
public override void Update()
|
public override void Update()
|
||||||
|
@ -76,10 +74,7 @@ namespace YooAsset
|
||||||
{
|
{
|
||||||
Progress = _asyncOp.progress;
|
Progress = _asyncOp.progress;
|
||||||
if (_asyncOp.isDone)
|
if (_asyncOp.isDone)
|
||||||
{
|
{
|
||||||
if (SceneObject.IsValid() && _activateOnLoad)
|
|
||||||
SceneManager.SetActiveScene(SceneObject);
|
|
||||||
|
|
||||||
Status = SceneObject.IsValid() ? EStatus.Succeed : EStatus.Failed;
|
Status = SceneObject.IsValid() ? EStatus.Succeed : EStatus.Failed;
|
||||||
if (Status == EStatus.Failed)
|
if (Status == EStatus.Failed)
|
||||||
{
|
{
|
||||||
|
|
|
@ -455,13 +455,12 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="location">场景的定位地址</param>
|
/// <param name="location">场景的定位地址</param>
|
||||||
/// <param name="sceneMode">场景加载模式</param>
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
/// <param name="activateOnLoad">加载完毕时是否主动激活</param>
|
|
||||||
/// <param name="priority">优先级</param>
|
/// <param name="priority">优先级</param>
|
||||||
public SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, bool activateOnLoad = true, int priority = 100)
|
public SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, int priority = 100)
|
||||||
{
|
{
|
||||||
DebugCheckInitialize();
|
DebugCheckInitialize();
|
||||||
AssetInfo assetInfo = ConvertLocationToAssetInfo(location, null);
|
AssetInfo assetInfo = ConvertLocationToAssetInfo(location, null);
|
||||||
var handle = _assetSystemImpl.LoadSceneAsync(assetInfo, sceneMode, activateOnLoad, priority);
|
var handle = _assetSystemImpl.LoadSceneAsync(assetInfo, sceneMode, priority);
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -470,12 +469,11 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="assetInfo">场景的资源信息</param>
|
/// <param name="assetInfo">场景的资源信息</param>
|
||||||
/// <param name="sceneMode">场景加载模式</param>
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
/// <param name="activateOnLoad">加载完毕时是否主动激活</param>
|
|
||||||
/// <param name="priority">优先级</param>
|
/// <param name="priority">优先级</param>
|
||||||
public SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode = LoadSceneMode.Single, bool activateOnLoad = true, int priority = 100)
|
public SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode = LoadSceneMode.Single, int priority = 100)
|
||||||
{
|
{
|
||||||
DebugCheckInitialize();
|
DebugCheckInitialize();
|
||||||
var handle = _assetSystemImpl.LoadSceneAsync(assetInfo, sceneMode, activateOnLoad, priority);
|
var handle = _assetSystemImpl.LoadSceneAsync(assetInfo, sceneMode, priority);
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -128,12 +128,11 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="location">场景的定位地址</param>
|
/// <param name="location">场景的定位地址</param>
|
||||||
/// <param name="sceneMode">场景加载模式</param>
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
/// <param name="activateOnLoad">加载完毕时是否主动激活</param>
|
|
||||||
/// <param name="priority">优先级</param>
|
/// <param name="priority">优先级</param>
|
||||||
public static SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, bool activateOnLoad = true, int priority = 100)
|
public static SceneOperationHandle LoadSceneAsync(string location, LoadSceneMode sceneMode = LoadSceneMode.Single, int priority = 100)
|
||||||
{
|
{
|
||||||
DebugCheckDefaultPackageValid();
|
DebugCheckDefaultPackageValid();
|
||||||
return _defaultPackage.LoadSceneAsync(location, sceneMode, activateOnLoad, priority);
|
return _defaultPackage.LoadSceneAsync(location, sceneMode, priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -141,12 +140,11 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="assetInfo">场景的资源信息</param>
|
/// <param name="assetInfo">场景的资源信息</param>
|
||||||
/// <param name="sceneMode">场景加载模式</param>
|
/// <param name="sceneMode">场景加载模式</param>
|
||||||
/// <param name="activateOnLoad">加载完毕时是否主动激活</param>
|
|
||||||
/// <param name="priority">优先级</param>
|
/// <param name="priority">优先级</param>
|
||||||
public static SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode = LoadSceneMode.Single, bool activateOnLoad = true, int priority = 100)
|
public static SceneOperationHandle LoadSceneAsync(AssetInfo assetInfo, LoadSceneMode sceneMode = LoadSceneMode.Single, int priority = 100)
|
||||||
{
|
{
|
||||||
DebugCheckDefaultPackageValid();
|
DebugCheckDefaultPackageValid();
|
||||||
return _defaultPackage.LoadSceneAsync(assetInfo, sceneMode, activateOnLoad, priority);
|
return _defaultPackage.LoadSceneAsync(assetInfo, sceneMode, priority);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue