UE PlayerController、AIController

ops/2025/2/4 11:16:40/

19. APlayerController

定义和功能
  • 定义APlayerController是Unreal Engine中用于处理玩家输入并将其转化为游戏世界中的动作的类。它是连接玩家和游戏角色(通常是Pawn)之间的桥梁,负责接收输入并通过Possess方法控制Pawn

  • 功能

    • 视角控制:管理玩家的摄像机视角,通过PlayerCameraManager来切换和控制摄像机。
    • 输入处理:构建输入堆栈来管理和路由来自玩家的输入命令。
    • UI显示:管理和显示用户界面,如HUD。
    • UPlayer关联:可以是本地的LocalPlayer,或网络控制UNetConnection。PlayerController只有在SetPlayer之后,才可以开始正常工作。
    • Level管理:在网络游戏中处理Level变换,确保玩家的连贯性。
    • 语音通信:在网络游戏中处理玩家之间的语音通信。
设计理念
  • 玩家直接控制APlayerController直接反映玩家的意图,所有的跟该玩家相关的操作和接口都交给它完成。
  • 灵活的视角管理:通过与PlayerCameraManager的紧密合作,提供了灵活的视角控制,使玩家可以从最佳角度体验游戏。
  • 高度可配置的输入系统:允许开发者自定义输入配置,使得控制更加符合游戏的具体需求。
相关类关系
  • Pawn的关系:通过Possess方法控制一个Pawn,成为玩家在游戏世界中的代表。
  • PlayerCameraManager的关系:管理玩家的视角,通过摄像机类实现视角的切换和控制。
  • HUD的关系:用于在屏幕上显示游戏信息和界面,与用户交互。
游戏场景例子
  • 单机FPS游戏:玩家通过键盘和鼠标控制角色移动和射击,APlayerController处理输入并通过PossessPawn执行动作。
  • 多人在线游戏:每个玩家都由一个APlayerController管理,控制各自的角色,并通过网络同步各自的状态和动作。

在这里插入图片描述

20. AAIController

定义和功能
  • 定义AAIController是Unreal Engine中用于控制AI角色的类,它允许非玩家角色根据预设的逻辑自动行动。
  • 功能
    • 导航和移动:使用导航系统自动控制AI角色的移动。
    • 行为树和黑板:运行AI的行为逻辑,存储和管理AI的状态数据。
    • Task系统:让AI去完成一些任务,也是实现GameplayAbilities系统的一个接口。
设计理念
  • 自主决策能力:让AI角色能够根据游戏环境和玩家行为做出响应。
  • 行为树系统:利用行为树来组织复杂的AI逻辑,提供可视化的逻辑编辑。
相关类关系
  • Pawn的关系:控制一个或多个Pawn,执行AI逻辑。
  • NavigationSystem的关系:依赖导航系统来实现AI的路径规划和移动。
游戏场景例子
  • 策略游戏中的AI敌人:AI使用AAIController来决定其行动,如攻击玩家或移动到战略位置。
  • 角色扮演游戏中的NPC:AI控制的NPC根据玩家的行动和游戏内的其他事件做出反应,提供任务或对话。

在这里插入图片描述


http://www.ppmy.cn/ops/155551.html

相关文章

如何在Windows、Linux和macOS上安装Rust并完成Hello World

如何在Windows、Linux和macOS上安装Rust并完成Hello World 如果你刚刚开始学习Rust,第一步就是安装Rust并运行你的第一个程序!本文将详细介绍如何在Windows、Linux和macOS上安装Rust,并编写一个简单的“Hello, World!”程序。 1. 安装Rust …

【axios二次封装】

axios二次封装 安装封装使用 安装 pnpm add axios封装 // 进行axios二次封装:使用请求与响应拦截器 import axios from axios import { ElMessage } from element-plus//创建axios实例 const request axios.create({baseURL: import.meta.env.VITE_APP_BASE_API,…

Spring 面试题【每日20道】【其二】

1、Spring MVC 具体的工作原理? 中等 Spring MVC 是 Spring 框架的一部分,专门用于构建基于Java的Web应用程序。它采用模型-视图-控制器(MVC)架构模式,有助于分离应用程序的不同方面,如输入逻辑、业务逻辑…

人工智能学习(五)之机器学习逻辑回归算法

深入剖析机器学习逻辑回归算法 一、引言 在机器学习领域,逻辑回归是一种极为经典且应用广泛的算法。虽说名字里带有 “回归”,但它主要用于解决分类问题,在医学、金融、互联网等多个领域都发挥着关键作用。例如,在医学上辅助判断…

无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

mklink : 无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1这是因为 在老版本系统中可以是用mklink来创建软连接,但在最…

php接口连接数据库

框架:https://www.thinkphp.cn/doc 创建网站 域名自己写 创建文件夹,“test”拉取框架,地址栏输入 composer create-project topthink/think5.1.* tp5 会自动创建一个tp5文件夹 根目录选择刚刚创建拉框架的文件夹 以test为示例 “D:\test\…

Maven全解析:Maven 进阶

pom.xml 文件: 定义了项目的基本信息,用于描述项目如何构建,声明项目依赖 坐标: 构建的唯一标识含义: groupId:组织标识。一般为:公司网址的反写 项目名artifactId:项目名称。一…

详解Redis之事务

目录 Redis事务 概念 特性 常用命令 MULTI EXEC DISCARD WATCH UNWATCH 使用演示 使用场景 注意事项 Redis事务 概念 Redis事务和MySQL的事务在概念上是类似的,都是把一系列操作绑定成一组,让这一组能够批量执行。但是,Redis事务…