【UE5】五大基类及其使用

UObject

UObject表示对象,准确来说,虚幻引擎中的对象基础类为UObject
UObject提供了以下功能:

  1. 垃圾收集(Garbage collection)
  2. 引用自动更新(Reference updating)
  3. 反射(Reflection)
  4. 序列化(Serialization)
  5. 自动检测默认变量的更改(Automatic updating of default property changes)
  6. 自动变量初始化(Automatic property initialization)
  7. 和虚幻引擎编辑器的自动交互(Automatic editor integration)
  8. 运行时类型识别(Type information available at runtime)
  9. 网络复制(Network replication)

使用UObject是因为要使用上述某些功能,而不是因为他是UE对象基类

Actor

· 所有可以放入关卡的对象都是Actor,比如摄像机、静态网格体、玩家起始位置。Actor支持三维变换,例如平移、旋转、缩放,你可以通过游戏逻辑代码(C++或蓝图)创建(生成)或销毁Actor
· 在C++中,AActor是所有Actor的基类
· Actor继承自UObject
· Actor能够被挂载组件
· Actor拥有Tick的能力
· 组件是Component,并不是Actor
· Actor并不自带Transform,Actor的Transform来自于其RootComponent
· 绝大部分在场景中的对象,无论是有形的还是无形的,都是Actor

Component

· 组合大于继承
· 为了弱化Actor的继承链,提出了Component的概念
· Component继承自UObject,比Actor轻量
· 主要存在两种Component,SceneComponent和ActorComponent,SceneComponent在场景中存在Transform,也能有坐标系父子关系
· UE更倾向于编写功能单一的Component,而不是一个整合了其他Component的大管家Component
· Component应该作为Actor较独立可复用性功能的载体,Actor本身也拥有数据存储能和逻辑实现能力,主要用于实现游戏业务逻辑
· Actor在世界中的位置属性、父子关系,全权由Component接管
在这里插入图片描述

Pawn

· 继承自Actor
· Pawn相比于Actor,可以被Controller控制
· 相比于Actor的逻辑,Pawn通过Controller解耦了游戏的业务逻辑,将Pawn自身实现的逻辑和上层控制逻辑分开
· 解耦:耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象,解耦就是用某种方法将两种体系分离开来处理
问题

Controller

· Controller继承自Actor(为了使用Actor的挂载组件、Tick等功能)
· AController
· Controller里只是保存了一个Pawn指针(一对一)
· Controller在逻辑上应该实现玩家逻辑
· Controller的Transform作用
虚幻引擎核心设计:MVC
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/181861.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQLite3 数据库学习(六):Qt 嵌入式 Web 服务器详解

参考引用 SQLite 权威指南(第二版)SQLite3 入门 1. Apache 搭建 cgi 环境 1.1 什么是 Apache Apache 是世界使用排名第一的 Web 服务器软件 它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用 1.2 具体搭建流程…

2020年12月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 关于广播消息,以下说法正确的是? A:只有角色,可以通过“广播消息”积木,向其他角色或是背景发送消息 B:只有背景,可以通过“广播消息”积木,向其他角色或是背景发送消息 C:背…

Shopee本土号封号几率大吗?如何避免封号?被封号了怎么办?

Shopee是近几年热门的电商平台之一,即使越来越多的跨境电商涌现,他的地位在东南亚市场依然占据一席之地,也依旧吸引着需要跨境商家入局。尤其在2023年,在TikTok Shop在印尼被关停之后,留下了大片空白,Shope…

千梦网创:创业,一场游戏一场梦

创业这件事就好比一场养成类游戏,而我们自己就是游戏主角。 这个游戏有一个特殊之处在于:SSS级装备有穿戴等级设定,就算你氪重金买到了一把神器,自身阅历不够也根本无法发挥它的强大威力而只能当个装饰。 这就要求我们真正沉浸在…

shell(函数和数组)

目录 一、函数 1.函数的由来 2.函数的作用 3.函数的使用方法 4.函数的定义 5.查看函数 6.删除函数 7.函数返回值 8.函数的传参数 9.函数递归 二、数组 1.数组的相关介绍 2.声明数组 3.定义数组的格式 4.冒泡排序 总结:本章主要介绍了函数和数组相关知…

gRPC之gRPC负载均衡(客户端负载均衡)(etcd)

1、gRPC负载均衡(客户端负载均衡)(etcd) 本篇将基于etcd的服务发现前提下,介绍如何实现gRPC客户端负载均衡。 1.1 gRPC负载均衡 gRPC官方文档提供了关于gRPC负载均衡方案Load Balancing in gRPC https://github.com/grpc/grpc/blob/master/doc/load-balancing.m…

【操作系统】Bochs安装和配置

Bochs是使用C编写的高度可移植开源IA-32(X86)PC模拟器,能在大多数流行的平台上运行。它包括模拟Intel x86 CPU、常见I/O设备和自定义BIOS。Bochs可以被编译以模拟许多不同的x86 CPU,从386早期到最新的x86-64英特尔和AMD处理器甚至…

【UE】用样条线实现测距功能(下)

目录 效果 步骤 一、实现多次测距功能 二、通过控件蓝图来进行测距 在上一篇(【UE】用样条线实现测距功能(上))文章基础上继续实现多次测距和清除功能。 效果 步骤 一、实现多次测距功能 打开蓝图“BP_Spline”&#xff0c…

RTOS的任务触发底层逻辑

(定时器用于计时和触发事件,任务则由调度器进行调度和执行:每当时钟节拍到达时,系统会触发一个称为 tick 中断的事件。当 tick 中断发生时,操作系统会在中断服务例程中执行一定的处理,其中包括更新任务的运…

MySQL的Redo Log跟Binlog

文章目录 概要Redo Log日志Redo Log的作用Redo Log的写入机制 Binlog日志Binlog的作用Binlog写入机制 两段提交 概要 Redo Log和Binlog是MySQL日志系统中非常重要的两种机制,也有很多相似之处,本文主要介绍两者细节和区别。 Redo Log日志 Redo Log的作…

JMeter压测常见面试问题

1、JMeter可以模拟哪些类型的负载? JMeter可以模拟各种类型的负载,包括但不限于Web应用程序、API、数据库、FTP、SMTP、JMS、SOAP / RESTful Web服务等。这使得JMeter成为一个功能强大且灵活的压力测试工具。 2、如何配置JMeter来进行分布式压力测试&a…

保护你的APP!快速了解如何进行APP安全性测试!

通常我们队APP所进行的安全性测试包含以下几个模块:安装包安全性、数据安全性、软键盘劫持、账户安全性、通信安全性、备份检查等。下面针对每个模块我们详细说明具体的测试方法。 安装包安全性 1、反编译 目的是为了保护公司的知识产权和安全方面的考虑等&#x…

Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

关于Appium V2 Appium V2 beta版本在2021年发布,从2022年1月1号开始,Appium核心团队不会再维护Appium 1.x版本了,所有近期官方发布的平台驱动(如Android平台的UIAutomator,IOS平台的XCUITest)不再兼容Appi…

相比其他关系型数据库,AntDB JDBC驱动特性有哪些不同之处

摘要:使用Java语言进行各类应用程序的快速开发成为目前比较主要且流行的开发方式。JDBC是 Java 语言中用来连接和操作关系型数据库的 API,在业务程序与关系型数据库通信时,必然会使用JDBC驱动。 本文将通过国产关系型数据库AntDB中的JDBC为大…

在PCL视图器中使用随机生成的颜色来可视化一组匹配的点对

std::vector<Eigen::Vector2d> centroids_unknown_motion_underk; std::vector<Eigen::Vector2d> centroids_unknown_motion_k; // 进行数字填充 pcl::visualization::PCLVisualizer viewer("Centroid Visualization");int id 0;// 添加 XY 坐标系doub…

中国人总爱乱吃药,这些家庭常见药我劝你别乱吃!

你可能在各种抖音快手上都看到过博主推荐生活小窍门—— 比如巧用二甲双胍减肥&#xff0c;六味地黄丸包治百病&#xff0c;阿司匹林巧治高血压…… 世上本没有神药&#xff0c;用得多了&#xff0c;也就变成神药了。 ——这句话鲁迅没说&#xff0c;也没有任何道理可言。 说…

uni-app开发小程序,利用scroll-view实现自动滚动至对应数据

uniapp scroll-view 官网 vue文件内容&#xff1a;dom: <scroll-view scroll-y :scroll-into-view"seqToView"><view class"pop-scroll"><viewv-for"(item,index) in seqList":id"seq- item":key"index"cl…

ubuntu20.04安装多版本cuda,切换版本

1. 安装cuda toolkit: 下载网站 https://developer.nvidia.com/cuda-11.3.0-download-archive 选择版本&#xff0c;这里选择11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run给cuda权限: chmod x…

数据结构与算法【红黑树】的Java实现+图解

前言 建议先阅读普通二叉搜索树与平衡二叉搜索树的文章。理解一些基本的二叉树知识数据结构与算法【二叉搜索树】Java实现-CSDN博客 介绍 红黑树也是一种自平衡的二叉搜索树&#xff0c;较之 AVL&#xff0c;插入和删除时旋转次数更少。 首先介绍代码实现会用到的概念 兄弟…

python-opencv在图片中绘制各种图形

python-opencv在图片中绘制各种图形 1.绘制直线 2.绘制矩形 3.绘制圆 4.绘制椭圆 5.绘制多边形 6.嵌入文字 实现代码都在下面了&#xff0c;代码中参数做了简单注释 import copy import math import matplotlib.pyplot as plt import matplotlib as mpl import numpy a…