《InsideUE4》-7-GamePlay架构(六)PlayerController和AIController

本文深入探讨了UE4中的PlayerController和AIController,它们分别是玩家和AI控制的核心。PlayerController处理玩家输入,管理Camera,与UPlayer关联,并负责HUD显示和Level切换等功能。AIController则专注于AI的自主决策,使用Navigation系统和行为树组件。两者共同构成了游戏逻辑控制的重要部分。
摘要由CSDN通过智能技术生成

PlayerController:你不懂,伴君如伴虎啊
AIController:上来,我自己动

引言

上文我们谈到了Component-Actor-Pawn-Controller的结构,追溯了AController整个家族的崛起和身负的使命。本篇我们继续来探讨Controller家族中最为人所知的PlayerController和AIController。
作为一个Controller,我们讨论的依然是该如何控制。我们已经知道了Controller可以Possess并控制Pawn,但是Controller本身又是怎么驱动起来的呢?一个游戏里的控制角色大抵都可以分为两类:玩家和AI。不管是单机游戏或者分屏多玩家,还是网络玩家联机对战,游戏都是为了玩家服务的,所以也必然会有一个或多个玩家,就算是如《山》那种纯看的游戏,也是有一个“可观察不可动”的玩家的。而AI的实体的数量就可以是零或者多个。
Note1:依旧重申:输入、网络、AI行为树等模块虽跟PlayerController和AIController关系紧密,但目前都暂且不讨论,留待各自模块章节再叙述。

APlayerController

让咱们先从简单的单机游戏开始讨论吧,比如一款单机FPS游戏,这个游戏里已经用各种各样的Actor们构建完成了世界场景,你的主角和敌人Pawn们也都在整装待发,这个时候你思考这么一个问题,我该怎么玩这个游戏?壮丽的舞台已经准备好了,就等你入场了。先抛开具体的引擎而言,首先你需要能看见(拥有Camera和位置),其次你必须能响应输入(玩家按WASD你应该能接收到),然后你可以根据输入操控一些Pawn(Possess然后传递Input),这样一个单机游戏中的简单玩家控制器就差不多了。一个游戏中只有一个PlayerController,在不同的关卡中你可以使用不同的PlayerController,但是同一时刻响应的只能是一个PlayerController。
插上多个手柄,咱们再拓展一下,比如像《街霸》那种单PC但是多玩家对抗或者协作的游戏。两个玩家可以分别用两个手柄,或者一个用键盘一个用鼠标,甚至是键盘上的不同区域,形式可以多种多样。这个时候如果依然只有一个PlayerController,实现起来其实也是可行的,把两个手柄——所有的输入都由这个PlayerController来接收,然后在PlayerController内部再分别根据情况去处理不同的Pawn。但是这种方式的缺点显然也在于很容易把玩家1、2的输入和控制混杂在一起,没有清晰的区分开。因此,为了支持这种情况,我们可以开始允许游戏中同时出现多个PlayerController,每个PlayerController甚至都可以拥有自己的Viewport(分屏或者不同窗口),这样我们通过配置,可以精确的路由手柄1的输入给玩家1,各自的逻辑也很好的区分和复用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值