ET服務端框架學習——尋路demo(之一)

        這裏用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組件的是通過事件系統調用的,如圖所示:

如圖所示:

對於該事件的具體講解可以參考文章《ET框架學習——OpcodeTypeComponent組件和MessageDispatherComponent組件》。可以看到,該類繼承了AMHandler抽象類,進而實現了IMHandler接口。MessageDispatcherComponent組件會收集持有MessageHandler特性的類,然後按照泛型Message(消息的類型)的類型進行分類存放。最後在收到相應的消息的時候,就可以通過消息類型追溯到指定的類,執行Run方法。

       到這裏,客戶端的尋路部分就結束了,後面會根據消息類型M2C_PathfindingResult,從服務端入手,學習ET的尋路模塊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章