物理更新
初级 程序员
当你需要你的逻辑与模拟交互、查询或以其他方式修改模拟的状态时,你可能需要在物理更新(Physics Update)之前或之后立即进行。你可以在 EntityComponent 或脚本中实现 ISimulationUpdate 接口,以便在模拟更新时收到通知。
using System;
using Stride.BepuPhysics;
using Stride.BepuPhysics.Components;
using Stride.Engine;
public class MyPhysicsComponent : SyncScript, ISimulationUpdate
{
public override void Update()
{
// 在这里调用你每帧都需要执行的逻辑
}
public void SimulationUpdate(BepuSimulation simulation, float simTimeStep)
{
// 在这里放置物理运行之前需要立即执行的逻辑,
// 例如采样玩家输入、设置刚体速度等
}
public void AfterSimulationUpdate(BepuSimulation simulation, float simTimeStep)
{
// 在这里放置物理运行之后需要立即检查的逻辑,
// 例如检查对象是否与其他东西碰撞、是否在地面上、
// 跳跃时是否未能增加高度等
}
}