Table of Contents

触发器

初级 设计师

触发器(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("离开了!");
    }
}

有关如何使用触发器的示例,请参见编写触发器脚本教程。

另请参阅