# 事件接口
蓝图中封装主要使用函数,事件,以及宏。注意:
- 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,它的原理如下:
- 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。