Add progress indicator in editor for assets loading
This commit is contained in:
@@ -56,6 +56,11 @@ namespace FlaxEditor.Modules
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public readonly GenerateScriptsProjectFilesProgress GenerateScriptsProjectFiles = new GenerateScriptsProjectFilesProgress();
|
public readonly GenerateScriptsProjectFilesProgress GenerateScriptsProjectFiles = new GenerateScriptsProjectFilesProgress();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The assets loading progress handler.
|
||||||
|
/// </summary>
|
||||||
|
public readonly LoadAssetsProgress LoadAssets = new LoadAssetsProgress();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the first active handler.
|
/// Gets the first active handler.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -80,6 +85,7 @@ namespace FlaxEditor.Modules
|
|||||||
RegisterHandler(CodeEditorOpen);
|
RegisterHandler(CodeEditorOpen);
|
||||||
RegisterHandler(NavMeshBuilding);
|
RegisterHandler(NavMeshBuilding);
|
||||||
RegisterHandler(GenerateScriptsProjectFiles);
|
RegisterHandler(GenerateScriptsProjectFiles);
|
||||||
|
RegisterHandler(LoadAssets);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
40
Source/Editor/Progress/Handlers/LoadAssetsProgress.cs
Normal file
40
Source/Editor/Progress/Handlers/LoadAssetsProgress.cs
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
|
namespace FlaxEditor.Progress.Handlers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Loading assets progress reporting handler.
|
||||||
|
/// </summary>
|
||||||
|
/// <seealso cref="FlaxEditor.Progress.ProgressHandler" />
|
||||||
|
public sealed class LoadAssetsProgress : ProgressHandler
|
||||||
|
{
|
||||||
|
private int _loadingAssetsCount;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="LoadAssetsProgress"/> class.
|
||||||
|
/// </summary>
|
||||||
|
public LoadAssetsProgress()
|
||||||
|
{
|
||||||
|
Editor.Instance.EditorUpdate += OnEditorUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEditorUpdate()
|
||||||
|
{
|
||||||
|
var contentStats = FlaxEngine.Content.Stats;
|
||||||
|
if (_loadingAssetsCount == contentStats.LoadingAssetsCount)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (contentStats.LoadingAssetsCount == 0)
|
||||||
|
OnEnd();
|
||||||
|
else if (_loadingAssetsCount == 0)
|
||||||
|
OnStart();
|
||||||
|
if (contentStats.LoadingAssetsCount > 0)
|
||||||
|
{
|
||||||
|
var progress = (float)contentStats.LoadedAssetsCount / contentStats.AssetsCount;
|
||||||
|
var text = contentStats.LoadingAssetsCount == 1 ? "Loading 1 asset..." : $"Loading {contentStats.LoadingAssetsCount} assets...";
|
||||||
|
OnUpdate(progress, text);
|
||||||
|
}
|
||||||
|
_loadingAssetsCount = contentStats.LoadingAssetsCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user