Make NavMesh initialize earlier.

This commit is contained in:
Menotdan
2024-04-14 00:58:11 -04:00
parent 3e475398e7
commit 84c1f6b5de
2 changed files with 31 additions and 8 deletions

View File

@@ -105,10 +105,8 @@ void NavMesh::OnDataAssetLoaded()
if (Data.Tiles.HasItems())
return;
const bool isEnabled = IsDuringPlay() && IsActiveInHierarchy();
// Remove added tiles
if (isEnabled)
if (_navMeshActive)
{
RemoveTiles();
}
@@ -120,7 +118,7 @@ void NavMesh::OnDataAssetLoaded()
IsDataDirty = false;
// Add loaded tiles
if (isEnabled)
if (_navMeshActive)
{
AddTiles();
}
@@ -156,15 +154,36 @@ void NavMesh::OnEnable()
// Base
Actor::OnEnable();
GetScene()->Navigation.Meshes.Add(this);
AddTiles();
if (!_navMeshActive)
{
GetScene()->Navigation.Meshes.Add(this);
AddTiles();
_navMeshActive = true;
}
}
void NavMesh::OnDisable()
{
RemoveTiles();
GetScene()->Navigation.Meshes.Remove(this);
if (_navMeshActive)
{
RemoveTiles();
GetScene()->Navigation.Meshes.Remove(this);
_navMeshActive = false;
}
// Base
Actor::OnDisable();
}
void NavMesh::Initialize()
{
// Base
Actor::Initialize();
if (!_navMeshActive)
{
GetScene()->Navigation.Meshes.Add(this);
AddTiles();
_navMeshActive = true;
}
}