Merge branch 'nav-mesh-init' of https://github.com/Menotdan/FlaxEngine into Menotdan-nav-mesh-init

This commit is contained in:
Wojtek Figat
2024-04-14 14:31:20 +02:00
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 && IsActiveInHierarchy())
{
GetScene()->Navigation.Meshes.Add(this);
AddTiles();
_navMeshActive = true;
}
}

View File

@@ -68,6 +68,9 @@ private:
void RemoveTiles();
void OnDataAssetLoaded();
private:
bool _navMeshActive = false;
public:
// [Actor]
void Serialize(SerializeStream& stream, const void* otherObj) override;
@@ -77,4 +80,5 @@ protected:
// [Actor]
void OnEnable() override;
void OnDisable() override;
void Initialize() override;
};