IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> UE4 UEngine.GameInstance.WorldContext.World.Level.Actor.Component -> 正文阅读

[游戏开发]UE4 UEngine.GameInstance.WorldContext.World.Level.Actor.Component

Engine

UE4的最高级类是UEngine,它派生了UGameEngine和UEditorEngine2个子类,分别管理单独游戏和编辑器游戏(UE4里面的Game、Editor、PIE等等类型概念后面再做介绍)。在UrealEngine.cpp里,有一个全局变量UEngine* GEngine=NULL,我们顺着UEngine往下看。
先看成员变量,变量非常多,挑重点看。它是最高级类,拥有管理游戏世界的能力,游戏世界的信息存放在成员变量WorldList里面,WorldList是一个FWorldContext容器数组。

FWorldContext

FWorldContext是UEngine用来管理世界生成、销毁、切换的类。看看它主要成员变量:
UWorld* ThisCurrentWorld;
UGameInstance* OwningGameInstance;

它拥有一个UWorld,也拥有一个指向UGameInstance的指针。

GameInstance

UGameInstance是一个运行游戏的高级管理者。 它拥有一个FWorldContext指针,一般来说,一个游戏只会实例化一个GameInstance,生存周期持续到游戏结束,编辑器模式下,生存周期为打开Editor到关闭Editor。
实例化的位置:GameInstance在EngineLoop::PreInit()->PreInitPostStartupScreen()->LoadModulesForProject()->…->UClass::CreateDefaultObject()

World

UWorld是可视化场景的最高级对象,是放置和移除关卡的地方,它拥有一个PersistentLevel和一组StreamLevel。在standaloneGame下,一般只存在一个World;在编辑器模式下,存在不止一个World,比如场景编辑、PIE、各种带渲染的交互编辑工具窗口等,都是World。
主要成员变量:
TArray<class ULevel*> Levels; //所有Level
class ULevel* PersistentLevel;
FPhysScene* PhysicsScene;

Level

ULevel是一个场景内容的收集者,包括光照、声音、实例化网格体等等,一些通用的内容比如光照质量,集成到WorldSetting这个类里设置。
主要成员变量:
TArray<AActor*> Actors;
AWorldSettings* WorldSettings;
ALevelScriptActor* LevelScriptActor;
//关卡蓝图

Actor

AActor本身带有网络复制、Tick等功能。此外,它还是一个ActorComponent的容器,通过各种ActorComponent实现移动、渲染等功能。 Actor本身不具备嵌套功能,是通过SceneComponent实现的。
主要成员变量:
TSet<UActorComponent*> OwnedComponents;
USceneComponent* RootComponent;

ActorComponent

UActorComponent是所有Component的基类,它定义了一些Component通用的行为。著名的带有Transform的是SceneComponent,能够被渲染的是PrimitiveComponent。
主要成员变量:
AActor OwnerPrivate;*

SceneComponent

USceneComponent带有Transform,提供attach功能。
主要成员变量:
FTransform ComponentToWorld;

PrimitiveComponent

UPrimitiveComponent拥有一些几何形状,用来渲染或者碰撞。 它拥有很多子类,其中比较常见的是ShapeComponent、StaticMeshComponent和SkeletalComponent,其中ShapeComponent能用于碰撞,但不能渲染出来,其余两者既可碰撞也可渲染。
主要成员变量:
FBodyInstance BodyInstance;

MeshComponent

UMeshComponent是一个三角面网格体的虚基类。

参考:
链接: 《InsideUE4》GamePlay架构(一)(二)(三)

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:36:23  更:2022-08-19 19:36:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 6:28:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码