UE4-GamePlay-Controller

简介

AController继承于AActor,一个Pawn只能被一个Controller控制,一个Controller也同样只能控制一个Pawn。但是Controller和Pawn并没有要求一定要同时存在。

使用玩家输入或者AI逻辑控制Pawns

  • Controller是一个负责指导Pawn的Actor。它们通常有两种版本,AIController和PlayerController。控制器可以“拥有”一个Pawn来控制它。

  • PlayerController是Pawn与玩家控制他之间的接口。其代表了玩家的意志。

  • AIController是一个可以控制Pawn的模拟意志。

由于Controller的生命周期比Pawn要长一些,因此对于那些公共的Pawn的功能逻辑I可以将其放置在Controller级别。

例如有两个种族。都能复活,这时候将两个种族的Pawn的复活功能抽取到Controller级别更好。主要就是放些公共可抽离的逻辑。

设计思路分析

目的

  1. 与Pawn有关联关系

  2. 可以自由的选择控制某个Pawn

  3. 能够脱离Pawn存在

  4. 控制Pawn的生成和销毁

  5. 自己本身也能通过配置生成

  6. 可以监听事件响应

  7. 一直都在Tick

  8. 拥有状态

  9. 拥有一定的扩展继承组合能力

  10. 可以保存数据状态

  11. 可在世界里移动

  12. 可探查世界的对象

  13. 可网络同步

如何实现?

在仔细考察了"控制"的需求和手头上的原料之后,我们试着从UE的角度来权衡一下。

首先Controller不能是一个Component,

(一)是因为Component的层级太低,表达的是功能的概念而非逻辑;

(二)是Component必须依附于Actor存在,而我们的Controller希望能独立存在。

(三)其次如果从UObject直接继承下来UController,倒是也可行,UObject也能复制同步,其他的控制Pawn的能力和事件响应等倒也是能改改接口想想办法,但是要想在世界里移动,就得有个位置表示,再加上还希望能容纳Components,这就麻烦了,基本就是把Actor的工作再做一套,有点累人,搞起来也怕两套班子出错闹矛盾。

(四)再来考察下从AActor继承下来AController怎么样,Actor比Object多了一些我们正需要的配置动态生成、输入事件响应、Tick、可继承、可容纳Component、可在世界里出现、可在网络间同步。

(五)好了,现在就差控制Pawn的能力,那我们就在这个分化出来的AController增加一些控制Pawn的接口,这个思路正是和我们从Actor从分化出Pawn的时候不谋而合!

 

 

 

 

 

UE4Gameplay框架是一个强大的工具集,用于开发和实现游戏玩法和用户交互。该框架提供了许多功能和组件,以帮助游戏开发者快速构建出丰富、流畅的游戏体验。 UE4Gameplay框架主要由以下几个方面组成: 1.输入系统:该系统可以处理各种输入设备的操作,如鼠标、键盘和游戏手柄。开发者可以轻松地设置和管理输入映射和按键绑定。此外,还提供了鼠标和手柄的即时响应和移动方向控制功能,使玩家能够自由操作游戏的角色。 2.角色控制器:角色控制器是游戏玩家在游戏扮演的角色,他们的控制是通过输入系统和蓝图来实现的。游戏玩家可以移动角色、执行动作、攻击敌人等。角色还可以通过动画系统实现自然的运动和交互。 3.人工智能:UE4Gameplay框架提供了内置的人工智能系统,可以对NPC和敌人进行编程控制。开发者可以设置敌人的行为模式、路径寻找和攻击策略,让游戏的敌人具有更真实和智能的表现。 4.物理模拟:UE4Gameplay框架使用了物理引擎来实现真实的物理模拟效果,比如碰撞、重力和刚体运动等。这使开发者能够创建更真实和具有交互性的游戏世界,使玩家可以与环境进行互动。 总之,UE4Gameplay框架提供了强大而灵活的工具,帮助开发者轻松地构建出丰富多样的游戏玩法和用户交互。无论是开发动作冒险游戏、射击游戏还是角色扮演游戏,该框架都能满足开发者的需求,并带来令人惊叹的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值