NavMesh
NavMesh是导航网格,底层基于Recast Navigation,所以实际上是对Recast的NavMesh的封装。
NavMesh里面包含很多个凸多边形,导航网格的构建主要是产生这些多边形的过程,寻路算法使用这些多边形进行寻路。
MovementComponent
MovementComponent是移动组件,根据输入向量负责对Actor进行变换,比如移动或者旋转Actor。输入可以来自玩家输入,也可以来自其他地方。
MovementComponent有多个子类,比如PawnMovementComponent,CharacterMovementComponent,WheeledVehicleMovementComponent,ProjectileMovementComponent等等。
在这些子类中,CharacterMovementComponent是最完善和最复杂的,支持网络同步和预测,支持多种移动模式,支持动画和碰撞等等,单个文件代码多达10000多行。由于在内部处理的东西较多,在有多个Character的情况下,CharacterMovementComponent组件经常会占用较多的CPU时间。
PathFollowingComponent
PathFollowingComponent是寻路组件,负责寻路,通过向MovementComponent输入移动向量,沿着预设路线移动到目的地。
PathFollowingComponent在UE4中有两个主要的实现UPathFollowingComponent和UCrowdFollowingComp