当前位置: 首页 > news >正文

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)包含游戏的所有内容&#xff0c…...

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 分析 每两个相邻的字母都要录制一段&#xff0c;开个set记录一下&#xff0c;然后输出set的大小 C代码&#xff1a; #include<iostream> #include<set> using namespace std; void solve(){int n;string s;cin>>n>>s;set<strin…...

暑期数据结构 空间复杂度

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

【Android Studio】图标一键生成 Image Asset Studio(一键各机型适配图标生成工具-告别一个一个替换)

文章目录 方法一&#xff1a;原始替换方法二&#xff1a;Image Asset Studio 方法一&#xff1a;原始替换 https://blog.csdn.net/xzzteach/article/details/140821856 方法二&#xff1a;Image Asset Studio 自动替换所有机型图标...

C++ | Leetcode C++题解之第332题重新安排行程

题目&#xff1a; 题解&#xff1a; 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—三维空间的刚体运动

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

计算机毕业设计选题推荐-二手图书交易系统-Java/Python项目实战

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

4.MySQL数据类型

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

快递查询新纪元:一键批量获取多家快递物流详情

跨快递平台批量查询神器&#xff1a;一站式解决信息追踪难题——固乔快递查询助手 在电商行业日益繁荣的今天&#xff0c;快递服务已经成为连接买卖双方不可或缺的一环。然而&#xff0c;随着合作的快递公司日益增多&#xff0c;如何高效地管理和追踪不同平台的快递信息&#…...

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…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...