Development Merge 2025.10.18 #4
@@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
using System.Collections.Generic;
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Engine.Core;
 | 
					namespace Engine.Core;
 | 
				
			||||||
@@ -23,6 +24,7 @@ public class UpdateManager : Behaviour
 | 
				
			|||||||
        updateEntities.Assign(universe);
 | 
					        updateEntities.Assign(universe);
 | 
				
			||||||
        postUpdateEntities.Assign(universe);
 | 
					        postUpdateEntities.Assign(universe);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        universe.OnPreUpdate.AddListener(OnFirstUpdate, int.MaxValue);
 | 
				
			||||||
        universe.OnPreUpdate.AddListener(OnPreUpdate);
 | 
					        universe.OnPreUpdate.AddListener(OnPreUpdate);
 | 
				
			||||||
        universe.OnUpdate.AddListener(OnUpdate);
 | 
					        universe.OnUpdate.AddListener(OnUpdate);
 | 
				
			||||||
        universe.OnPostUpdate.AddListener(OnPostUpdate);
 | 
					        universe.OnPostUpdate.AddListener(OnPostUpdate);
 | 
				
			||||||
@@ -36,19 +38,23 @@ public class UpdateManager : Behaviour
 | 
				
			|||||||
        updateEntities.Unassign();
 | 
					        updateEntities.Unassign();
 | 
				
			||||||
        postUpdateEntities.Unassign();
 | 
					        postUpdateEntities.Unassign();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        universe.OnPreUpdate.RemoveListener(OnFirstUpdate);
 | 
				
			||||||
        universe.OnPreUpdate.RemoveListener(OnPreUpdate);
 | 
					        universe.OnPreUpdate.RemoveListener(OnPreUpdate);
 | 
				
			||||||
        universe.OnUpdate.RemoveListener(OnUpdate);
 | 
					        universe.OnUpdate.RemoveListener(OnUpdate);
 | 
				
			||||||
        universe.OnPostUpdate.RemoveListener(OnPostUpdate);
 | 
					        universe.OnPostUpdate.RemoveListener(OnPostUpdate);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void OnPreUpdate(IUniverse sender, IUniverse.UpdateArguments args)
 | 
					    private void OnFirstUpdate(IUniverse sender, IUniverse.UpdateArguments args)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        for (int i = toCallFirstFrameUpdates.Count - 1; i >= 0; i--)
 | 
					        for (int i = toCallFirstFrameUpdates.Count - 1; i >= 0; i--)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            toCallFirstFrameUpdates[i].FirstActiveFrame();
 | 
					            toCallFirstFrameUpdates[i].FirstActiveFrame();
 | 
				
			||||||
            toCallFirstFrameUpdates.RemoveAt(i);
 | 
					            toCallFirstFrameUpdates.RemoveAt(i);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void OnPreUpdate(IUniverse sender, IUniverse.UpdateArguments args)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
        for (int i = preUpdateEntities.Count - 1; i >= 0; i--)
 | 
					        for (int i = preUpdateEntities.Count - 1; i >= 0; i--)
 | 
				
			||||||
            preUpdateEntities[i].PreUpdate();
 | 
					            preUpdateEntities[i].PreUpdate();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user