UE基础 —— 术语
目录
Project
Blueprint
Class
Object
Actor
Casting
Component
Pawn
Character
Player Controller
AI Controller
Player State
Game Mode
Game State
Brush
Volume
Level
World
Project
项目(Project)包含游戏的所有内容,磁盘上的大量文件夹,可命名和组织这些文件夹;在内容浏览器中会显示与磁盘上相同的目录结构;
每个项目都有与之关联的.uproject文件,此文件是创建、打开、或保存项目的方法;可创建任意数量的项目,且并行处理;
Blueprint
蓝图可视化脚本(Blueprint Visual Scripting)系统是完善的gameplay脚本系统,基于节点来创建gameplay元素;类似许多常用的脚本语言,用于在UE中定义面向对象的类或对象;在使用UE的过程中,会经常发现使用蓝图定义的对象;
Class
Class定义UE中一个特定Actor或Object的行为(behaviors)和属性(properties);类从父类继承信息并传递给其子类,可在C++代码内或蓝图内创建类;
Object
Object是UE中最基本的类,包含资产的大量基本功能;在UE中,几乎每件事都继承自Object(或获得一些功能);
在C++内,UObject是所有类的基类,实现了多种功能,如垃圾回收、元数据(UProperty,支持公开变量)、及为加载和存储的序列化;
Actor
Actor是可放到关卡中的任何Object,如Camera、static mesh、player start;Actor支持3D变换,如移动、旋转、缩放,可被C++或蓝图创建和销毁;
在C++内,AActor是所有Actor的基类;
Casting
类型转换(Casting)是一种动作,会获取特定类的Actor并尝试将其作为其他类进行处理;如转换成功,即可访问转换后类的功能;
如有多个类型的volume以不同的方式影响玩家角色,其中一个volume是fire可伤害玩家生命值,当玩家遇到(overlap)关卡中的任何volume时,可将volume转换为fire来访问“伤害玩家”函数;
类型转换,不同于简单的检查某个Actor是否属于某个类,然后返回一个二元值(是或否),那是无法访问该类函数的;
Component
组件(Component)是一种可添加到Actor的功能;当添加一个组件到actor时,actor即可使用组件提供的功能;
- Spot Light Component,可使Actor发射聚光;
- Rotating Movement Component,可使Actor旋转;
- Audio Component,可使Actor播放声音;
组件必须附加到Actor,不可自己单独存在;
Pawn
Pawn是Actor的子类,可作为游戏中的角色;玩家或AI可控制Pawn,作为非玩家角色(NPC);
当Pawn被人类或AI控制的时候,即被视为Possessed,相反未被控制时,即被视为Unpossessed;
Character
Character是Pawn的子类,旨在被用作玩家角色;角色子类包括碰撞设置,双足运动的输入绑定,以及用于控制运动的附加代码;
Player Controller
玩家控制器(Player Controller)获取玩家输入,将其转换到游戏中的互动中;每个游戏至少有一个玩家控制器,一个玩家控制器经常Possess一个Pawn或Character作为玩家在游戏中的化身;
玩家控制器还是多人游戏中的主要网络交互节点,在多人游戏中,服务器会为每个玩家生成一个玩家控制器示例,因为必须对每个玩家进行网络函数调用;每个客户端只拥有与其玩家对应的玩家控制器,且只能使用其玩家控制器与服务器通信;
对应的C++类是PlayerController;
AI Controller
类似Player Controller,AI控制器(AI Controller) Possess 一个Pawn作为非玩家(NPC)在游戏中的化身;
默认Pawn和Character最终都会由基本的AI Controller控制,除非被指定为Player Controller,或被告知不需要为它们自己创建AI Controller;
对应的C++类是AIController;
Player State
玩家状态(Player State)是游戏参与者在游戏中的状态,如人类玩家或模拟玩家的机器人,作为游戏的一部分而存在的非玩家AI没有玩家状态;
玩家状态可包括的玩家信息:
- 名称Name;
- 当前关卡Level;
- 健康Health;
- 分数Score;
- 在抢旗游戏中,玩家当前是否携带旗子;
对多人游戏,所有玩家的玩家状态都存在机器中,可将数据从游戏中复制到客户端以保持内容一致;这不同于玩家控制器,仅存在于玩家的机器中;
对应的C++类是PlayerState;
Game Mode
游戏模式(Game Mode)设置要运行的游戏的规则,包括:
- 玩家如何加入游戏;
- 是否可暂停游戏;
- 任何游戏相关的行为,如获胜条件;
可在Project Settings中设置默认的Game Mode,并在不同的关卡覆盖重载它;无论如何实现Game Mode,每个关卡始终只能有一个Game Mode;在多人游戏中,Game Mode只存在于服务器,规则会被复制(发送)给所有联网客户端;
对应的C++类是GameMode;
Game State
Game State是一种容器,保存着希望在游戏中复制给每个客户端的信息;简言之,即表示每个联网玩家的游戏状态,包括:
- 游戏分数;
- 比赛是否开始;
- 根据场景中玩家人数,需生成多个AI;
在多人游戏中,每个玩家电脑上都只有一个Game State本地实例,Game State本地实例从服务器Game State实例获取更新信息;
对应的C++类是GameState;
Brush
笔刷(Brush)是一个Actor,描述3D形状,如cube、sphere;
可放置笔刷到关卡,并定义关卡几何体(Binary Space Partition or BSP brushes);对快速搭建关卡有用;
Volume
Volume是一种存在边框的3D空间,会根据附加的效果产生不同的用途,如:
- 阻挡体积(Blocking Volumes),一种不可见的体积,用来防止Actor穿过;
- 伤害生成体积(Pain Causing Volumes),会对与其重叠的Actor持续伤害;
- 触发体积(Trigger Volumes),可通过编程让Actor在进入或离开它们触发事件;
Level
关卡(Level)是用户定义的gameplay区域,包含玩家可看见和交互的所有内容,如geometry、Pawns、Actors;
虚幻把每个关卡存为.umap文件,也称为Maps;
World
World是组成游戏所有关卡的容器,可处理关卡流送(Level Streaming),和生成(创建)动态Actor;
相关文章:

UE基础 —— 术语
目录 Project Blueprint Class Object Actor Casting Component Pawn Character Player Controller AI Controller Player State Game Mode Game State Brush Volume Level World Project 项目(Project)包含游戏的所有内容,…...

kubernets学习笔记——使用kubeadm构建kubernets集群及排错
使用kubeadm构建kubernets集群 一、准备工作1、repo源配置:阿里巴巴开源镜像源2、更新软件包并安装必要的系统工具3、同步时间4、禁用selinux5、禁用交换分区swap6、关闭防火墙 二、安装docker-ce、docker、cri-docker1、安装docker-ce2、开启内核转发,转…...

简述MYSQL聚簇索引、二级索引、索引下推
一丶聚簇索引 InnoDB的索引分为两种: 聚簇索引:一般创建表时的主键就会被mysql作为聚簇索引,如果没有主键则选择非空唯一索引作为聚簇索引,都没有则隐式创建一个索引作为聚簇索引;辅助索引:也就是非聚簇索…...

电脑开机后出现bootmgr is missing原因及解决方法
最近有网友问我为什么我电脑开机后出现bootmgr is missing,这个提示意思是:意思是启动管理器丢失,说明bootmgr损坏或者丢失,系统无法读取到这个必要的启动信息导致无法启动。原因有很多,比如我们采用的是uefi引导,而第…...

2024 年 7 月公链行业研报:市场波动中 Solana 表现抢眼,Layer 2 竞争白热化
作者:Stella L (stellafootprint.network) 数据来源:Footprint Analytics 公链 Research 页面 7 月份,加密货币市场表现活跃,波动幅度较大,这一现象映射了全球金融市场的整体趋势。现货以太坊 ETP 在美国的上市&…...
Python查缺補漏
一、 json.load(s)与json.dump(s)区别 json.loads()将str类型的数据转换为dict类型 json.dumps()将dict类型的数据转成str json.load()从json文件中读取数据 json.dump()将数据以json的数据类型写入文件中 二、json内部要使用双引号 data """{ "fruit&qu…...

c++的类和对象(中):默认成员函数与运算符重载(重难点!!)
前言 Hello, 小伙伴们,我们今天继续c的学习,我们上期有介绍到c的部分特性,以及一些区别于c语言的地方,今天我们将继续深入了解c的类和对象,探索c的奥秘。 好,废话不多说,开始我们今天的学习。…...
Android .kl按键布局文件
1.介绍 一个硬件按键的处理流程大致为:当用户按下或释放一个键时,键盘硬件会生成一个扫描码scan code,然后操作系统读取这个scan code,并将scan code扫描码映射到虚拟键码key code,最后操作系统根据映射的keycode生成…...

Java每日一练_模拟面试题6(JVM的GC过程)
一、JVM虚拟机组成 JVM五大内存区域:程序计数器,Java虚拟机栈,本地方法栈,java堆,方法区。 堆被划分为两个区域:年轻代(Young)、老年代(Tenured)。年轻代又被划分为三个区域:Eden、From Surviv…...

数据防泄密软件推荐|(6大数据防泄密软件推荐!)
很多朋友在后台私信,什么是数据防泄密软件,有哪些数据防泄密软件推荐。 今天小编将从定义出发,深入浅出地介绍这一技术的工作原理、应用场景以及实现方式。 一、什么是文档透明加密? 文档透明加密是一种在用户无感知的情况下对文…...
Codeforces 874 div3 A-G
A. Musical Puzzle 分析 每两个相邻的字母都要录制一段,开个set记录一下,然后输出set的大小 C代码: #include<iostream> #include<set> using namespace std; void solve(){int n;string s;cin>>n>>s;set<strin…...

暑期数据结构 空间复杂度
3.空间复杂度 空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度。 空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟…...

【Android Studio】图标一键生成 Image Asset Studio(一键各机型适配图标生成工具-告别一个一个替换)
文章目录 方法一:原始替换方法二:Image Asset Studio 方法一:原始替换 https://blog.csdn.net/xzzteach/article/details/140821856 方法二:Image Asset Studio 自动替换所有机型图标...

C++ | Leetcode C++题解之第332题重新安排行程
题目: 题解: class Solution { public:unordered_map<string, priority_queue<string, vector<string>, std::greater<string>>> vec;vector<string> stk;void dfs(const string& curr) {while (vec.count(curr) &am…...
使用Python实现简单的网页爬虫:抓取网站标题
使用Python实现简单的网页爬虫:抓取网站标题 在当今数据驱动的时代,网络爬虫(Web Crawler)成为了获取和分析网络数据的重要工具。无论是数据科学、市场分析还是学术研究,爬虫都能帮助我们从互联网上提取有价值的信息。本文将介绍如何使用Python实现一个简单的爬虫,抓取某…...

视觉SLAM ch3—三维空间的刚体运动
如果对于某些线性代数的知识不太牢固,可以看一下我的另一篇博客,写了一些基础知识并推荐了一些视频。 旋转矩阵 单元所需的线代基础知识https://blog.csdn.net/Johaden/article/details/141023668 一、旋转矩阵 1.点、向量、坐标系 在数学中&…...

计算机毕业设计选题推荐-二手图书交易系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

4.MySQL数据类型
目录 数据类型 编辑数值类型 tinyint类型 bit类型 float类型 decimal类型 字符串类型 char类型 varchar varchar和char的区别 日期和时间类型 数据类型 数值类型 说明一下:MySQL本身是不支持bool类型的,当把一个数据设置成bool类型时&#x…...

快递查询新纪元:一键批量获取多家快递物流详情
跨快递平台批量查询神器:一站式解决信息追踪难题——固乔快递查询助手 在电商行业日益繁荣的今天,快递服务已经成为连接买卖双方不可或缺的一环。然而,随着合作的快递公司日益增多,如何高效地管理和追踪不同平台的快递信息&#…...
docker部署redis和mongoDB
docker部署mongoDB redismongoDB redis # --requirepass指定redis连接时的密码 # --appendonly yes 开启reids的AOF功能 docker run --name redis -p 6379:6379 -d redis:5.0.14 redis-server --requirepass 1234 --appendonly yes# 以/etc/redis/redis.conf的配置信息启动red…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...