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…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...
