Fix asset reference window showing temp assets

This commit is contained in:
Wojtek Figat
2025-03-31 13:44:16 +02:00
parent e0251afe79
commit f947aa3ae2

View File

@@ -147,6 +147,7 @@ namespace FlaxEditor.Windows
private Task _task;
private const float MarginX = 200;
private const float MarginY = 50;
private string _tempFolder;
// Async task data
private float _progress;
@@ -164,6 +165,7 @@ namespace FlaxEditor.Windows
{
Title = assetItem.ShortName + " References";
_tempFolder = StringUtils.NormalizePath(Path.GetDirectoryName(Globals.TemporaryFolder));
_cacheFolder = Path.Combine(Globals.ProjectCacheFolder, "References");
if (!Directory.Exists(_cacheFolder))
Directory.CreateDirectory(_cacheFolder);
@@ -195,6 +197,11 @@ namespace FlaxEditor.Windows
return node;
}
private bool CheckSkipAsset(Asset asset)
{
return asset == null || asset.IsVirtual || asset.Path.StartsWith(_tempFolder);
}
private unsafe void SearchRefs(Guid assetId)
{
// Skip assets that never contain references to prevent loading them
@@ -236,7 +243,7 @@ namespace FlaxEditor.Windows
var asset = obj as Asset;
if (!asset)
asset = FlaxEngine.Content.LoadAsync<Asset>(assetId);
if (asset == null || asset.IsVirtual)
if (CheckSkipAsset(asset))
return;
while (asset && !asset.IsLoaded && !asset.LastLoadFailed)
{
@@ -300,9 +307,11 @@ namespace FlaxEditor.Windows
if (!(obj is Asset) && !(obj is Scene))
{
var asset = FlaxEngine.Content.LoadAsync<Asset>(assetRef);
if (asset == null || asset.IsVirtual)
if (CheckSkipAsset(asset))
continue;
}
else if (obj is Asset asset && CheckSkipAsset(asset))
continue;
// Skip nodes that were already added to the graph
if (_nodesAssets.Contains(assetRef))