这里用master版本的寻路来学习一下ET的服务端,ET的寻路部分是放在服务端计算的,然后将路径的点集发送到客户端,有客户端具体执行移动命令。
在此之前,先来看看ET客户端的关于寻路部分的demo。
-
UnitPathComponent组件
该组件是执行寻路移动的核心组件之一。 该组件没有接通事件系统。StartMove(M2C_PathfindingResult message)方法会从message消息中获取到移动路径点集和一个ServerPos变量(寻路移动的起点)。然后调用StartMove(CancellationToken cancellationToken)方法,该方法会根据ServerPos和客户端角色的移动起始位置进行移动速度矫正,该矫正速度仅用于移动到第一个位点。在移动的过程中,调用TurnComponent组件的Turn方法用于转弯,MoveComponent组件的MoveToAsync方法用于实施移动。
-
TurnComponent组件
该组件用于转向,接通了Update事件, 在Update方法中,利用Quaternion.Slerp方法对方向进行调整
-
MoveComponent组件
该组件也接通了Update事件。 在Update方法中,利用Vector3.Lerp方法对位置进行调整。
UnitPathComponent组件的是通过事件系统调用的,如图所示:
<