触发器
初级 设计师
触发器(Trigger)是一种碰撞形状,用于检测碰撞体何时进入它。例如,它可以用来在玩家角色进入房间时运行一个事件。
Stride 的 Bepu 实现中的触发器属于一种特殊的接触事件处理器(Contact Event Handler)。
接触事件处理器是一个类,每当与之关联的对象与世界发生碰撞时,它会接收碰撞数据。
如果你绑定到对象的接触事件处理器设置为 NoContactResponse,它就是一个触发器:该对象将永远不会阻止任何东西穿过它,它只会接收碰撞事件。
下面是一个作为触发器在控制台中显示消息的基本组件示例:
using Stride.BepuPhysics;
using Stride.BepuPhysics.Definitions.Contacts;
using Stride.Engine;
public class Test : StartupScript, IContactHandler
{
public bool NoContactResponse => true;
void IContactHandler.OnStartedTouching<TManifold>(Contacts<TManifold> contacts)
{
Log.Warning("进入了!");
}
void IContactHandler.OnStoppedTouching<TManifold>(Contacts<TManifold> contacts)
{
Log.Warning("离开了!");
}
}
有关如何使用触发器的示例,请参见编写触发器脚本教程。