stride-docs
stride-docs copied to clipboard
Document `PostTick` and `PreTick` for Simulation
We should add a section to the Physics manual to show how to subscribe to the physics tick events in order to mimic what people are used to for FixedUpdate.
- This section should get the simulation
- subscribe to both PostTick and PreTick
- add some comments as to how they run
Example:
using Stride.Engine;
using Stride.Physics;
public class FixedUpdate : StartupScript
{
public override void Start()
{
var sim = this.GetSimulation();
sim.PreTick += Sim_PreTick;
sim.PostTick += Sim_PostTick;
}
private void Sim_PreTick(Simulation sender, float tick)
{
// Run before the Simulation is updated
}
private void Sim_PostTick(Simulation sender, float tick)
{
// Run after the Simulation is updated
}
public override void Cancel()
{
var sim = this.GetSimulation();
sim.PreTick -= Sim_PreTick;
sim.PostTick -= Sim_PostTick;
}
}
This should be a pretty simple manual page I think but we should also add it to the Stride for Unity® developers somewhere that would mention FixedUpdate from Unity.
more things to think about:
- The Bepu physics implementation does not have these events. This will be a Bullet physics doc.
- C# events kind of suck for performance apparently. Maybe we should give an example on how to make a single event call that can call multiple scripts with some sort of custom processor?
- Maybe for Bepu we can show how to use the
SimulationUpdateComponentwhich works very similar to Unitys Monobehaviour with theFixedupdatereplaced bySimulationUpdateandAfterSimulationUpdatemethods.
Do we need to unsubscribe?
Yes, absolutely worth mentioning maybe in the Cancel method that is overridable.
edit: Added to the example above.