Optimize asset references to support direct registration to reduce Delegate memory allocations and overhead
This commit is contained in:
@@ -11,9 +11,8 @@
|
||||
|
||||
MeshCollider::MeshCollider(const SpawnParams& params)
|
||||
: Collider(params)
|
||||
, CollisionData(this)
|
||||
{
|
||||
CollisionData.Changed.Bind<MeshCollider, &MeshCollider::OnCollisionDataChanged>(this);
|
||||
CollisionData.Loaded.Bind<MeshCollider, &MeshCollider::OnCollisionDataLoaded>(this);
|
||||
}
|
||||
|
||||
void MeshCollider::OnCollisionDataChanged()
|
||||
@@ -33,8 +32,9 @@ void MeshCollider::OnCollisionDataChanged()
|
||||
|
||||
void MeshCollider::OnCollisionDataLoaded()
|
||||
{
|
||||
UpdateGeometry();
|
||||
UpdateBounds();
|
||||
// Not needed as OnCollisionDataChanged waits for it to be loaded
|
||||
//UpdateGeometry();
|
||||
//UpdateBounds();
|
||||
}
|
||||
|
||||
bool MeshCollider::CanAttach(RigidBody* rigidBody) const
|
||||
@@ -152,3 +152,19 @@ void MeshCollider::GetGeometry(CollisionShape& collision)
|
||||
else
|
||||
collision.SetSphere(minSize);
|
||||
}
|
||||
|
||||
void MeshCollider::OnAssetChanged(Asset* asset, void* caller)
|
||||
{
|
||||
Collider::OnAssetChanged(asset, caller);
|
||||
|
||||
if (caller == &CollisionData)
|
||||
OnCollisionDataChanged();
|
||||
}
|
||||
|
||||
void MeshCollider::OnAssetLoaded(Asset* asset, void* caller)
|
||||
{
|
||||
Collider::OnAssetLoaded(asset, caller);
|
||||
|
||||
if (caller == &CollisionData)
|
||||
OnCollisionDataLoaded();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user