followActor 跟随角色
followActor
类型: MethodDeclaration
所属类: CommandFunctionList
定义位置: command.ts
描述
跟随角色
参数
| 参数名 | 类型 | 描述 | 默认值 | 
|---|---|---|---|
| \{actor, target, mode, minDist, maxDist, offset, vertDist, bufferDist, navigate, bypass, once, wait\} | `{ | ||
| actor: ActorGetter | |||
| target: ActorGetter | |||
| mode: 'circle' | 'rectangle' | |||
| minDist: number | |||
| maxDist: number | |||
| offset?: number | |||
| vertDist?: number | |||
| bufferDist: number | |||
| navigate: boolean | |||
| bypass?: boolean | |||
| once: boolean | |||
| wait: boolean | |||
| }` | - | - | 
返回值
类型: CommandFunction
源代码
位置: 第 5687 行
protected followActor({actor, target, mode, minDist, maxDist, offset, vertDist, bufferDist, navigate, bypass, once, wait}: {
    actor: ActorGetter
    target: ActorGetter
    mode: 'circle' | 'rectangle'
    minDist: number
    maxDist: number
    offset?: number
    vertDist?: number
    bufferDist: number
    navigate: boolean
    bypass?: boolean
    once: boolean
    wait: boolean
  }): CommandFunction {
    // 补丁:2023-1-30
    bypass = bypass ?? false
    // 补丁:2025-3-5
    bufferDist = bufferDist ?? 0
    const getActor = Command.compileActor(actor)
    const getTarget = Command.compileActor(target)
    const getMinDist = Command.compileNumber(minDist)
    const getMaxDist = Command.compileNumber(maxDist)
    switch (mode) {
      case 'circle':
        return () => {
          const actor = getActor()
          const target = getTarget()
          if (actor && target && actor !== target) {
            actor.navigator.followCircle(target, getMinDist(), getMaxDist(), offset, bufferDist, navigate, bypass, once)
            if (wait) {
              const event = CurrentEvent
              actor.navigator.onFinish(() => {
                event.continue()
              })
              return CurrentEvent.pause()
            }
          }
          return true
        }
      case 'rectangle':
        return () => {
          const actor = getActor()
          const target = getTarget()
          if (actor && target && actor !== target) {
            actor.navigator.followRectangle(target, getMinDist(), getMaxDist(), vertDist, bufferDist, navigate, bypass, once)
            if (wait) {
              const event = CurrentEvent
              actor.navigator.onFinish(() => {
                event.continue()
              })
              return CurrentEvent.pause()
            }
          }
          return true
        }
    }
  }
文档生成时间:2025/7/21 20:53:39