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