跳到主要内容

弹道捕获器

弹道捕获器是附着在单位身上的一个圆形范围,当有弹道进入该范围时会触发on_enter事件;当有弹道离开该范围时会触发on_leave事件。此外,当弹道捕获器创建出来时一开始就在内部的弹道也会触发on_enter事件;当弹道捕获器移除时依然在内部的弹道也会触发on_leave事件。

弹道捕获器的范围会跟随着附着单位移动,每个单位只能拥有一个捕获器。如果你需要给不特定的单位添加弹道捕获器,应该使用马甲令其跟随单位,将弹道捕获器附着在这个马甲身上。

弹道被捕获后,你可以使用unit:each_mover来找到弹道的运动

创建

使用unit:capturer来创建弹道捕获器。

-- 将创建出来的弹道捕获器保存下来,之后需要给他注册事件
local capturer = unit:capturer
{
-- 弹道捕获器的范围
radius = 500,
}

###属性 属性应该在[创建]弹道捕获器时时设置。

radius

捕获范围(number)

事件

事件需要在[创建]弹道捕获器时注册。事件中的self表示捕获器对象。

on_enter

弹道进入事件

  • 回调参数
    • missile (unit) - 进入范围的弹道单位
function capturer:on_enter(missile)
-- 你的代码
end

on_leave

弹道离开事件

  • 回调参数
    • missile (unit) - 进入范围的弹道单位
function capturer:on_leave(missile)
-- 你的代码
end

方法

remove

移除捕获器

由c++实现的api

capturer:remove()