Optimize asset references to support direct registration to reduce Delegate memory allocations and overhead

This commit is contained in:
Wojtek Figat
2025-06-08 00:58:15 +02:00
parent bffb175a9b
commit 73c30d3d89
26 changed files with 365 additions and 141 deletions

View File

@@ -17,8 +17,8 @@
NavMesh::NavMesh(const SpawnParams& params)
: Actor(params)
, IsDataDirty(false)
, DataAsset(this)
{
DataAsset.Loaded.Bind<NavMesh, &NavMesh::OnDataAssetLoaded>(this);
}
void NavMesh::SaveNavMesh()
@@ -100,7 +100,11 @@ void NavMesh::RemoveTiles()
navMesh->RemoveTiles(this);
}
void NavMesh::OnDataAssetLoaded()
void NavMesh::OnAssetChanged(Asset* asset, void* caller)
{
}
void NavMesh::OnAssetLoaded(Asset* asset, void* caller)
{
// Skip if already has data (prevent reloading navmesh on saving)
if (Data.Tiles.HasItems())
@@ -126,6 +130,10 @@ void NavMesh::OnDataAssetLoaded()
}
}
void NavMesh::OnAssetUnloaded(Asset* asset, void* caller)
{
}
void NavMesh::Serialize(SerializeStream& stream, const void* otherObj)
{
// Base