Fix invisible static model if model is loaded but not yet streamed

This commit is contained in:
Wojtek Figat
2022-08-31 19:40:13 +02:00
parent 6f756acb33
commit d712a83c69

View File

@@ -520,9 +520,19 @@ void StaticModel::OnTransformChanged()
void StaticModel::OnEnable()
{
if (_scene && _sceneRenderingKey == -1 && !_residencyChangedModel && Model && Model->IsLoaded() && Model->GetLoadedLODs() != 0)
// If model is set and loaded but we still don't have residency registered do it here (eg. model is streaming LODs right now)
if (_scene && _sceneRenderingKey == -1 && !_residencyChangedModel && Model && Model->IsLoaded())
{
GetSceneRendering()->AddActor(this, _sceneRenderingKey);
// Register for rendering but once the model has any LOD loaded
if (Model->GetLoadedLODs() == 0)
{
_residencyChangedModel = Model;
_residencyChangedModel->ResidencyChanged.Bind<StaticModel, &StaticModel::OnModelResidencyChanged>(this);
}
else
{
GetSceneRendering()->AddActor(this, _sceneRenderingKey);
}
}
// Skip ModelInstanceActor (add to SceneRendering manually)