《InsideUE4》GamePlay架构(五)Controller 学习笔记

探讨了在游戏开发中,尤其是使用UE引擎时,PlayerState和Controller在处理玩家状态和控制逻辑方面的作用。PlayerState适合存储关卡内的玩家数据,而跨关卡的数据应保存在GameInstance中。Controller负责控制Pawn的行为,其生命周期长于Pawn,适用于持久逻辑的实现。
  1. 玩家在切换关卡的时候,APlayerState也会被释放掉,所有PlayerState实际上表达的是当前关卡的玩家得分等数据
  2. 那些跨关卡的统计数据等就也不应该放进PlayerState里了,应该放在外面的GameInstance,然后用SaveGame保存起来
  3. PlayerState独立构成一个Actor还有一个好处,当玩家偶尔因网络波动断线,因为这个连接不在了,所以该Controller也失效了被释放了,服务器可以把对应的该PlayerState先暂存起来,等玩家再紧接着重连上了,可以利用该PlayerState重新挂接上Controller,以此提供一个比较顺畅无缝的体验。至于AIController,因为都是运行在Server上的,Client上并没有,所以也就无所谓了
  4. UE在Pawn这个层级演化构成了一个最基本和非常完善的Component-Actor-Pawn-Controller的结构
  5. UE以Actor的视角来看待世间万物,自然得到的是一个Actor繁荣昌盛的世界
  6. Unity以Component来组装万物,得到的就是个各种插件组件组装出的世界
  7. Cocos2dx一般万物都是Node,那么自然也会得到一棵挂满各种Node的世界之树
  8. 作为一个——控制”希望拥有哪一些本领:
    - 能够和Pawn对应起来
    - 多个控制实例
    - 可挂载释放
    - 能够脱离Pawn存在
    - 操纵Pawn生死的能力
    - 根据配置自动生成
    - 事件响应
    - 持续的运行
    - 自身有状态
    - 拥有一定的扩展继承组合能力
    - 保存数据状态
    - 可在世界里移动
    - 可探查世界的对象
    - 可同步
  9. 哪些逻辑应该写在Controller中:
    - 从概念上,体现在“能”,controller控制动作
    - 从对应上来说,一类的pawn动作,写在pawn上;一个逻辑控制多种pawn,写在controllor
    - 从存在性来说,Controller的生命期比Pawn要长一些,如:pawn重生,对于那些需要在Pawn之外还要持续存在的逻辑和状态,放进Controller中是更好的选择
  10. PlayerState是控制器的记忆,与关卡相连
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值