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

被折叠的 条评论
为什么被折叠?



