perf!: events refactored throughout all the project to use Event<> class

All delegate events are refactored to use the Event<TSender> and Event<TSender, TArgument> for performance issues regarding delegate events creating garbage, also this gives us better control on event invocation since C# Delegates did also create unnecessary garbage during Delegate.DynamicInvoke
This commit is contained in:
2025-05-31 00:14:43 +03:00
parent 996e61d0ad
commit 61e2761580
58 changed files with 637 additions and 485 deletions

View File

@@ -20,15 +20,15 @@ public class CoroutineManager : UniverseObject
protected override void OnEnteringUniverse(IUniverse universe)
{
universe.OnUpdate += OnUpdate;
universe.OnUpdate.AddListener(OnUpdate);
}
protected override void OnExitingUniverse(IUniverse universe)
{
universe.OnUpdate -= OnUpdate;
universe.OnUpdate.RemoveListener(OnUpdate);
}
private void OnUpdate(IUniverse sender, UniverseTime time)
private void OnUpdate(IUniverse sender, IUniverse.UpdateArguments args)
{
for (int i = enumerators.Count - 1; i >= 0; i--)
{