UE4基础篇十二: 网络同步

一、理解Controller、GameState 和 PlayerState

原文链接:大钊:《InsideUE4》GamePlay架构(五)Controller

1.1 思考:哪些逻辑应该写在Controller中?

如同当初我们在思考Actor和Component的逻辑划分一样,我们也得要划分哪些逻辑应该放在Pawn中,哪些应该放在Contrller中。上文我们也说过,Pawn也可以接收用户输入事件,所以其实只要你愿意,你甚至可以脱离Controller做一个特立独行的Pawn。那么在那些时候需要Controller?哪些逻辑应该由Controller掌管呢?可以从以下一些方面考虑:

  • 从概念上,Pawn本身表示的是一个“能动”的概念,重点在于“能”。而Controller代表的是动到“哪里”的概念,重点在于“方向”。所以如果是一些Pawn本身固有的能力逻辑,如前进后退、播放动画、碰撞检测之类的就完全可以在Pawn内实现;而对于一些可替换的逻辑,或者智能决策的,就应该归Controller管辖。
  • 从对应上来说,如果一个逻辑只属于某一类Pawn,那么其实你放进Pawn内也挺好。而如果一个逻辑可以应用于多个Pawn,那么放进Controller就可以组合应用了。举个例子,在战争游戏中,假设说有坦克和卡车两种战车(Pawn),只

你可能感兴趣的:(Unreal,基础必学系列,ue4,网络)