Skip to content

Commit

Permalink
added progression param to sync LoadScene methods (organized)
Browse files Browse the repository at this point in the history
  • Loading branch information
michael811125 committed May 23, 2024
1 parent 0101213 commit 966c289
Show file tree
Hide file tree
Showing 6 changed files with 198 additions and 279 deletions.
24 changes: 12 additions & 12 deletions Assets/OxGFrame/AssetLoader/Scripts/Runtime/AssetLoaders.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ public static async UniTask<BundlePack> LoadSceneAsync(string packageName, strin
/// <param name="loadSceneMode"></param>
/// <param name="progression"></param>
/// <returns></returns>
public static BundlePack LoadScene(string assetName, LoadSceneMode loadSceneMode = LoadSceneMode.Single)
public static BundlePack LoadScene(string assetName, LoadSceneMode loadSceneMode = LoadSceneMode.Single, Progression progression = null)
{
string packageName = AssetPatcher.GetDefaultPackageName();
return CacheBundle.GetInstance().LoadScene(packageName, assetName, loadSceneMode);
return CacheBundle.GetInstance().LoadScene(packageName, assetName, loadSceneMode, progression);
}

public static BundlePack LoadScene(string packageName, string assetName, LoadSceneMode loadSceneMode = LoadSceneMode.Single)
public static BundlePack LoadScene(string packageName, string assetName, LoadSceneMode loadSceneMode = LoadSceneMode.Single, Progression progression = null)
{
return CacheBundle.GetInstance().LoadScene(packageName, assetName, loadSceneMode);
return CacheBundle.GetInstance().LoadScene(packageName, assetName, loadSceneMode, progression);
}

/// <summary>
Expand Down Expand Up @@ -77,15 +77,15 @@ public static async UniTask<BundlePack> LoadSingleSceneAsync(string packageName,
/// <param name="assetName"></param>
/// <param name="progression"></param>
/// <returns></returns>
public static BundlePack LoadSingleScene(string assetName)
public static BundlePack LoadSingleScene(string assetName, Progression progression = null)
{
string packageName = AssetPatcher.GetDefaultPackageName();
return CacheBundle.GetInstance().LoadScene(packageName, assetName, LoadSceneMode.Single);
return CacheBundle.GetInstance().LoadScene(packageName, assetName, LoadSceneMode.Single, progression);
}

public static BundlePack LoadSingleScene(string packageName, string assetName)
public static BundlePack LoadSingleScene(string packageName, string assetName, Progression progression = null)
{
return CacheBundle.GetInstance().LoadScene(packageName, assetName, LoadSceneMode.Single);
return CacheBundle.GetInstance().LoadScene(packageName, assetName, LoadSceneMode.Single, progression);
}

/// <summary>
Expand Down Expand Up @@ -113,15 +113,15 @@ public static async UniTask<BundlePack> LoadAdditiveSceneAsync(string packageNam
/// <param name="assetName"></param>
/// <param name="progression"></param>
/// <returns></returns>
public static BundlePack LoadAdditiveScene(string assetName)
public static BundlePack LoadAdditiveScene(string assetName, Progression progression = null)
{
string packageName = AssetPatcher.GetDefaultPackageName();
return CacheBundle.GetInstance().LoadScene(packageName, assetName, LoadSceneMode.Additive);
return CacheBundle.GetInstance().LoadScene(packageName, assetName, LoadSceneMode.Additive, progression);
}

public static BundlePack LoadAdditiveScene(string packageName, string assetName)
public static BundlePack LoadAdditiveScene(string packageName, string assetName, Progression progression = null)
{
return CacheBundle.GetInstance().LoadScene(packageName, assetName, LoadSceneMode.Additive);
return CacheBundle.GetInstance().LoadScene(packageName, assetName, LoadSceneMode.Additive, progression);
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -646,7 +646,7 @@ public async UniTask<BundlePack> LoadSceneAsync(string packageName, string asset
return pack;
}

public BundlePack LoadScene(string packageName, string assetName, LoadSceneMode loadSceneMode)
public BundlePack LoadScene(string packageName, string assetName, LoadSceneMode loadSceneMode, Progression progression)
{
/**
* Single Scene will auto unload and release
Expand All @@ -666,6 +666,10 @@ public BundlePack LoadScene(string packageName, string assetName, LoadSceneMode
return null;
}

// 初始加載進度
this.currentCount = 0;
this.totalCount = 1;

// 場景最多嘗試 1 次
byte maxRetryCount = 1;
// Loading 標記
Expand All @@ -686,6 +690,8 @@ public BundlePack LoadScene(string packageName, string assetName, LoadSceneMode
{
if (req.IsDone)
{
this.currentCount++;
progression?.Invoke(this.currentCount / this.totalCount, this.currentCount, this.totalCount);
loaded = true;
switch (loadSceneMode)
{
Expand Down Expand Up @@ -743,7 +749,7 @@ public BundlePack LoadScene(string packageName, string assetName, LoadSceneMode
if (this.GetRetryCounter(assetName).IsRetryActive()) Logging.Print<Logger>($"<color=#f7ff3e>【Load Scene】 => << CacheBundle >> Asset: {assetName} doing retry. Retry count: {this.GetRetryCounter(assetName).retryCount}, Max retry count: {maxRetryCount}</color>");
else Logging.Print<Logger>($"<color=#f7ff3e>【Load Scene】 => << CacheBundle >> Asset: {assetName} start doing retry. Max retry count: {maxRetryCount}</color>");
this.GetRetryCounter(assetName).AddRetryCount();
return this.LoadScene(packageName, assetName, loadSceneMode);
return this.LoadScene(packageName, assetName, loadSceneMode, progression);
}

this.RemoveLoadingFlags(assetName);
Expand Down
Loading

0 comments on commit 966c289

Please sign in to comment.