diff --git a/Source/Editor/Content/Proxy/CubeTextureProxy.cs b/Source/Editor/Content/Proxy/CubeTextureProxy.cs
index efccfdbe5..bf7116647 100644
--- a/Source/Editor/Content/Proxy/CubeTextureProxy.cs
+++ b/Source/Editor/Content/Proxy/CubeTextureProxy.cs
@@ -52,7 +52,7 @@ namespace FlaxEditor.Content
///
public override bool CanDrawThumbnail(ThumbnailRequest request)
{
- return _preview.HasLoadedAssets && ThumbnailsModule.HasMinimumQuality((CubeTexture)request.Asset);
+ return _preview.HasContentLoaded && ThumbnailsModule.HasMinimumQuality((CubeTexture)request.Asset);
}
///
diff --git a/Source/Editor/Content/Proxy/MaterialInstanceProxy.cs b/Source/Editor/Content/Proxy/MaterialInstanceProxy.cs
index 212417e9f..45de48f56 100644
--- a/Source/Editor/Content/Proxy/MaterialInstanceProxy.cs
+++ b/Source/Editor/Content/Proxy/MaterialInstanceProxy.cs
@@ -39,7 +39,7 @@ namespace FlaxEditor.Content
///
public override bool CanDrawThumbnail(ThumbnailRequest request)
{
- return _preview.HasLoadedAssets && ThumbnailsModule.HasMinimumQuality((MaterialInstance)request.Asset);
+ return _preview.HasContentLoaded && ThumbnailsModule.HasMinimumQuality((MaterialInstance)request.Asset);
}
}
}
diff --git a/Source/Editor/Content/Proxy/MaterialProxy.cs b/Source/Editor/Content/Proxy/MaterialProxy.cs
index 58d34299c..0943c2b6f 100644
--- a/Source/Editor/Content/Proxy/MaterialProxy.cs
+++ b/Source/Editor/Content/Proxy/MaterialProxy.cs
@@ -39,7 +39,7 @@ namespace FlaxEditor.Content
///
public override bool CanDrawThumbnail(ThumbnailRequest request)
{
- return _preview.HasLoadedAssets && ThumbnailsModule.HasMinimumQuality((Material)request.Asset);
+ return _preview.HasContentLoaded && ThumbnailsModule.HasMinimumQuality((Material)request.Asset);
}
}
}
diff --git a/Source/Editor/Content/Proxy/ModelProxy.cs b/Source/Editor/Content/Proxy/ModelProxy.cs
index a57ddbf61..7c3f8ae1c 100644
--- a/Source/Editor/Content/Proxy/ModelProxy.cs
+++ b/Source/Editor/Content/Proxy/ModelProxy.cs
@@ -83,7 +83,7 @@ namespace FlaxEditor.Content
///
public override bool CanDrawThumbnail(ThumbnailRequest request)
{
- return _preview.HasLoadedAssets && ThumbnailsModule.HasMinimumQuality((Model)request.Asset);
+ return _preview.HasContentLoaded && ThumbnailsModule.HasMinimumQuality((Model)request.Asset);
}
///
diff --git a/Source/Editor/Content/Proxy/ParticleEmitterProxy.cs b/Source/Editor/Content/Proxy/ParticleEmitterProxy.cs
index 9ef533b76..6c6f0c24f 100644
--- a/Source/Editor/Content/Proxy/ParticleEmitterProxy.cs
+++ b/Source/Editor/Content/Proxy/ParticleEmitterProxy.cs
@@ -133,7 +133,7 @@ namespace FlaxEditor.Content
return false;
// Ensure assets are ready to be used
- if (!_preview.HasLoadedAssets)
+ if (!_preview.HasContentLoaded)
return false;
var asset = (ParticleEmitter)request.Asset;
if (!asset.IsLoaded)
diff --git a/Source/Editor/Content/Proxy/ParticleSystemProxy.cs b/Source/Editor/Content/Proxy/ParticleSystemProxy.cs
index ccea01998..97ca17f25 100644
--- a/Source/Editor/Content/Proxy/ParticleSystemProxy.cs
+++ b/Source/Editor/Content/Proxy/ParticleSystemProxy.cs
@@ -104,7 +104,7 @@ namespace FlaxEditor.Content
return false;
// Ensure assets are ready to be used
- if (!_preview.HasLoadedAssets)
+ if (!_preview.HasContentLoaded)
return false;
var asset = (ParticleSystem)request.Asset;
if (!asset.IsLoaded)
diff --git a/Source/Editor/Content/Proxy/PrefabProxy.cs b/Source/Editor/Content/Proxy/PrefabProxy.cs
index e5cf053d6..32e3b83f3 100644
--- a/Source/Editor/Content/Proxy/PrefabProxy.cs
+++ b/Source/Editor/Content/Proxy/PrefabProxy.cs
@@ -118,7 +118,7 @@ namespace FlaxEditor.Content
///
public override bool CanDrawThumbnail(ThumbnailRequest request)
{
- if (!_preview.HasLoadedAssets)
+ if (!_preview.HasContentLoaded)
return false;
// Check if asset is streamed enough
diff --git a/Source/Editor/Content/Proxy/SkinnedModelProxy.cs b/Source/Editor/Content/Proxy/SkinnedModelProxy.cs
index 95f2f7510..9db9a152d 100644
--- a/Source/Editor/Content/Proxy/SkinnedModelProxy.cs
+++ b/Source/Editor/Content/Proxy/SkinnedModelProxy.cs
@@ -106,7 +106,7 @@ namespace FlaxEditor.Content
///
public override bool CanDrawThumbnail(ThumbnailRequest request)
{
- return _preview.HasLoadedAssets && ThumbnailsModule.HasMinimumQuality((SkinnedModel)request.Asset);
+ return _preview.HasContentLoaded && ThumbnailsModule.HasMinimumQuality((SkinnedModel)request.Asset);
}
///
diff --git a/Source/Editor/Viewport/EditorViewport.cs b/Source/Editor/Viewport/EditorViewport.cs
index 763f710c8..ea36f558a 100644
--- a/Source/Editor/Viewport/EditorViewport.cs
+++ b/Source/Editor/Viewport/EditorViewport.cs
@@ -423,7 +423,7 @@ namespace FlaxEditor.Viewport
///
/// Gets a value indicating whether this viewport has loaded dependant assets.
///
- public virtual bool HasLoadedAssets => true;
+ public virtual bool HasContentLoaded => true;
///
/// The 'View' widget button context menu.
diff --git a/Source/Editor/Viewport/PrefabWindowViewport.cs b/Source/Editor/Viewport/PrefabWindowViewport.cs
index 0a3b4b4e5..ba0fbc2c4 100644
--- a/Source/Editor/Viewport/PrefabWindowViewport.cs
+++ b/Source/Editor/Viewport/PrefabWindowViewport.cs
@@ -396,6 +396,22 @@ namespace FlaxEditor.Viewport
ViewportCamera.ShowActors(TransformGizmo.SelectedParents, ref orient);
}
+ private static bool ActorHasContentLoaded(Actor a)
+ {
+ if (!a.HasContentLoaded)
+ return false;
+ var children = a.ChildrenCount;
+ for (int i = 0; i < children; i++)
+ {
+ if (!ActorHasContentLoaded(a.GetChild(i)))
+ return false;
+ }
+ return true;
+ }
+
+ ///
+ public override bool HasContentLoaded => base.HasContentLoaded && (Instance == null || ActorHasContentLoaded(Instance));
+
///
public EditorViewport Viewport => this;
diff --git a/Source/Editor/Viewport/Previews/AssetPreview.cs b/Source/Editor/Viewport/Previews/AssetPreview.cs
index b6610c880..73709248f 100644
--- a/Source/Editor/Viewport/Previews/AssetPreview.cs
+++ b/Source/Editor/Viewport/Previews/AssetPreview.cs
@@ -245,7 +245,7 @@ namespace FlaxEditor.Viewport.Previews
}
///
- public override bool HasLoadedAssets => base.HasLoadedAssets && Sky.HasContentLoaded && EnvProbe.HasContentLoaded && PostFxVolume.HasContentLoaded;
+ public override bool HasContentLoaded => base.HasContentLoaded && Sky.HasContentLoaded && EnvProbe.HasContentLoaded && PostFxVolume.HasContentLoaded;
///
public override void OnDestroy()
diff --git a/Source/Editor/Viewport/Previews/CubeTexturePreview.cs b/Source/Editor/Viewport/Previews/CubeTexturePreview.cs
index f0b05c8e6..0a52b8e48 100644
--- a/Source/Editor/Viewport/Previews/CubeTexturePreview.cs
+++ b/Source/Editor/Viewport/Previews/CubeTexturePreview.cs
@@ -237,7 +237,7 @@ namespace FlaxEditor.Viewport.Previews
}
///
- public override bool HasLoadedAssets => base.HasLoadedAssets && _previewMaterial.IsLoaded && _previewMaterial.BaseMaterial.IsLoaded;
+ public override bool HasContentLoaded => base.HasContentLoaded && _previewMaterial.IsLoaded && _previewMaterial.BaseMaterial.IsLoaded;
///
public override void OnDestroy()
diff --git a/Source/Editor/Viewport/Previews/MaterialPreview.cs b/Source/Editor/Viewport/Previews/MaterialPreview.cs
index b64a4fdba..67267708d 100644
--- a/Source/Editor/Viewport/Previews/MaterialPreview.cs
+++ b/Source/Editor/Viewport/Previews/MaterialPreview.cs
@@ -175,11 +175,11 @@ namespace FlaxEditor.Viewport.Previews
}
///
- public override bool HasLoadedAssets
+ public override bool HasContentLoaded
{
get
{
- if (!base.HasLoadedAssets)
+ if (!base.HasContentLoaded)
return false;
UpdateMaterial();
return true;
diff --git a/Source/Editor/Viewport/Previews/ParticleEmitterPreview.cs b/Source/Editor/Viewport/Previews/ParticleEmitterPreview.cs
index 023bd121f..1bcaa015e 100644
--- a/Source/Editor/Viewport/Previews/ParticleEmitterPreview.cs
+++ b/Source/Editor/Viewport/Previews/ParticleEmitterPreview.cs
@@ -78,7 +78,7 @@ namespace FlaxEditor.Viewport.Previews
}
///
- public override bool HasLoadedAssets => (_emitter == null || _emitter.IsLoaded) && base.HasLoadedAssets;
+ public override bool HasContentLoaded => (_emitter == null || _emitter.IsLoaded) && base.HasContentLoaded;
///
public override void OnDestroy()
diff --git a/Source/Editor/Viewport/Previews/ParticleSystemPreview.cs b/Source/Editor/Viewport/Previews/ParticleSystemPreview.cs
index 13987157e..9bfbaabab 100644
--- a/Source/Editor/Viewport/Previews/ParticleSystemPreview.cs
+++ b/Source/Editor/Viewport/Previews/ParticleSystemPreview.cs
@@ -226,7 +226,7 @@ namespace FlaxEditor.Viewport.Previews
}
///
- public override bool HasLoadedAssets => _previewEffect.HasContentLoaded && base.HasLoadedAssets;
+ public override bool HasContentLoaded => _previewEffect.HasContentLoaded && base.HasContentLoaded;
///
public override void Update(float deltaTime)
diff --git a/Source/Editor/Windows/Assets/PrefabWindow.cs b/Source/Editor/Windows/Assets/PrefabWindow.cs
index da41b88c5..91db9f0e0 100644
--- a/Source/Editor/Windows/Assets/PrefabWindow.cs
+++ b/Source/Editor/Windows/Assets/PrefabWindow.cs
@@ -536,7 +536,7 @@ namespace FlaxEditor.Windows.Assets
}
// Auto fit
- if (_focusCamera && _viewport.Task.FrameCount > 1)
+ if (_focusCamera && _viewport.Task.FrameCount > 1 && _viewport.HasContentLoaded)
{
_focusCamera = false;
Editor.GetActorEditorSphere(_viewport.Instance, out BoundingSphere bounds);