# 事件接口

蓝图中封装主要使用函数,事件,以及宏。注意:

  1. Delay节点不能放在函数中,但是可以放在事件和宏中。

# Actor事件接口

Actor生命周期事件接口有:

  • BeginPlay:开始时执行。
  • EndPlay:结束时执行,可通过switch节点来暴露EndPlayReason,应对不同的EndPlay场景。
  • Destroyed:被销毁时执行。
  • Tick:每帧执行。
  • OnReset:初始化关卡时会执行。

Actor的交互事件接口有:

  • ActorOnClicked:鼠标点击时触发,如果需要鼠标点击,需要在PlayerController中Show Mouse Cursor,然后Enable Click Events。
  • ActorOnReleased:鼠标松开时触发
  • ActorBeginOverlap:开始Overlap时触发,如果让鼠标支持Overlap,需要在PlayerController中设置EnableMouseOverEvents。
  • ActorEndOverlap:结束Overlap时触发
  • ActorBeginCursorOver:鼠标移动到上面时触发,如果让鼠标支持Overlap,需要在PlayerController中设置EnableMouseOverEvents。
  • ActorEndCursorOver:鼠标离开时触发。
  • OnBeginViewTarget:以当前Actor为视角时触发。可以在命令行中ViewActor ActorLabel来切换。
  • OnEndViewTarget:不以当前Actor为视角时触发。
  • Hit:被撞击时触发

移动端相关的事件接口:

  • TouchEnter:手指一直触摸时触发该函数
  • TouchLeave:手指离开时触发该函数
  • BeginInputTouch:在click事件被激活时,触摸该Actor会执行该函数。
  • EndInputTouch:在click事件被激活时,触摸该Actor的手指不触摸时会执行该函数。

和伤害有关的事件接口:

  • RadialDamage:半径伤害,越往中心伤害越高。
  • PointDamage:点伤害。
  • AnyDamage:任何伤害。

# Character接口

常用接口:

  • EventOnJumped:跳起来时触发,需要CanJumpInternal返回True。
  • EventOnWalkingOffLedge:离开面时触发。
  • EventOnLaunched:像发射火箭那样,使用函数Launch Character触发。
  • EventOnLanded:着陆时触发。
  • EventOnStartCrouch:蹲下时触发。使用Crouch函数触发,需要在CharacterMovement中设置CanCrouch。其他参数也是在这个面板处设置。
  • EventOnEndCrouch:结束蹲下时触发。
  • EventOnMovementModeChanged:改变移动状态时触发。
  • EventUpdateCustomMovement:进行自定义移动时触发。
  • EventPossessed:控制器拥有当前Character时触发。可通过PlayerController中的Prossess触发。
  • EventUnpossessed:控制器不拥有当前Character时触发。可通过PlayerController中的UnProssess触发。

# GameMode接口

  • SpawnDefaultPawnFor:生成默认pawn,它的原理如下:
    • SpawnDefaultPawn
  • ShouldReset:关卡重新加载的时候会调用,或者调用ResetLevel时调用Actor及Pawn的OnReset事件。
  • MustSpectate:新的玩家控制器加入服务器时是否用旁观视角。调用RestartPlayer时也会判断是否使用旁观视角。
  • EventOnPostLogin:登陆服务端成功以后会调用该函数,只发生在服务端。在单机模式下GameMode也可看成一个服务端。如果是多人联机,它只存在于服务端不同步于客户端。
  • EventOnRestartPlayer:player重新开始时调用,注意PlayerCanRestart需要设置为True。要激活该函数可以使用下面三个函数:
    • RestartPlayerAtTransform
    • RestartPlayerAtPlayerStart
    • RestartPlayer
  • EventOnChangeName:改变名字时触发该事件,可以通过ChangeName来给玩家改名。
  • EventInitStartSpot:被RestartPlayerAtPlayerStart调用,可用来初始化开始生成的Actor。
  • EventInitializeHudForPlayer:为玩家更新HUD,只存在于客户端。
  • EventHandleStartingNewPlayer:当一个玩家准备好进入游戏了,该事件将它启动起来,可以定义生成的玩家是什么样。
  • GetDefaultPawnClassForController:获取指定控制器的默认的Pawn。
  • FindPlayerStart:找到玩家出生点位,或者自定义玩家出生点。
  • ChoosePlayerStart:尽量寻找一个没有玩家占用的PlayerStart。
  • CanSpectate:判断观察者是否能观看指定的ViewTarget。