Skip to content
Mr.ture.China edited this page Oct 15, 2021 · 16 revisions

由于U3D没有提供组件挂载和移除事件,本系统基于事件委托进行使用,为简化使用提供了自动订阅功能,因此有两种使用方法:

使用自动订阅

1.将本系统的碰撞器器挂载到需要检测碰撞的物体上
2.在需要进行检测的物体的碰撞器组件上勾选 IsDetector
3.在需要接收事件的脚本中根据需要实现接收事件的接口

警告:自动订阅的原理是在 Awake 时查询物体上所有组件并将实现了接口的组件的方法进行唯一一次订阅,这个订阅不会被取消。因此自动订阅只适用于需要碰撞检测的组件在物体实例化时就已经存在的情况(可以启用和禁用),如果组件在实例化后才挂载会无法订阅。虽然订阅不会取消,但由于使用了 UnityEvent 如果组件中途销毁并不会导致内存泄漏。

手动订阅

1.将本系统的碰撞器挂载到需要检测碰撞的物体上
2.取消勾选 Auto Subscribe
3.在需要进行检测的物体的碰撞器组件上勾选 IsDetector
4.在需要接收事件的脚本中根据需要实现接收事件的接口
5.根据逻辑在需要的位置使用碰撞器的订阅和取消订阅方法来订阅和取消订阅碰撞器组件的三个事件中的一个或多个

修改配置

通过 Tools -> Quadtree -> Quadtree Config 配置窗口可以根据需要调整四叉树参数进行优化。

Clone this wiki locally