本节内容 这一节主要讲述在多人游戏中,Gemaplay框架相关各个类是如何处理每个游戏会话中的各种事务的。 GameMode 在多人网络游戏中,GameMode只存在于服务器中。 GameMode可以用来设置游戏中的各个默认类,比如GameState、Default Pawn、HUD、PlayerController等等。除了设置默认类外还有其它丰富的功能,负责游戏规则,比如确定玩家淘汰后会发生什么,以及处理玩家的重生;游戏模式中还可以运行计时器,以便管理比赛的时间。 GameState 在多人网络游戏中,GameState存在于服务器和所有客户端中。由于GameMode只存在于服务器中,那么GameMode中的数据如何传输到客户端呢,GameState可以处理这件事情,它可以将服务器中的数据复制到客户端。GameState更多用于存储游戏状态,比如存储游戏中所有玩家的得分、各个队伍的排名等。 PlayerState 和GameState类似,它也只存在于服务器和所有客户端中。PlayerState只负责处理单个玩家的状态,比如当前玩家的得分、击败数量、身上携带的弹药、属于哪支队伍等。 PlayerController PlayerController存在于服务器和当前本地客户端中。它负责拥有并控制一个Pawn,也可以访问HUD,因此一旦我们有了健康条、得分、击败次数和弹药数量等信息,我们就可以通过PlayerController访问HUD来更新这些信息。 Pawn Pawn其实也就是玩家角色,它存在于服务器和所有客户端中。 HUD 只存在于本地客户端中,HUD负责各种屏幕信息显示,生命条、击败次数、弹药数量等。
总结
在编写游戏时,我们要时刻考虑哪些逻辑应该写在哪个地方,充分利用引擎游戏框架内置好的功能函数才能使编程事半功倍。