[UE4]GameInstance初始化】的更多相关文章

GameInstance的生命周期跟游戏进程一样. 每一次进入游戏都会初始化一个GameInstance,直到退出游戏才会被销毁. 不会随着场景的变化而被销毁.…
最近看教学,有个讲解UE4初始化顺序的,记录一下. 首先创建一个Actor,Character,GameInstance,GameMode,LevelScriptActor(关卡),PlayerController. 首先看一下actor的生命周期 Actor的头文件对于生成顺序注释是: 我们把actor蓝图直接拖入ue关卡中的话,应该会走从磁盘加载的流程. 已位于关卡中的 Actor 使用此路径,如 LoadMap 发生时.或 AddToWorld(从流关卡或子关卡)被调用时. 首先调用构造函…
UObject是一套很复杂的体系,之前读ue3代码时曾分析过其类型系统实现,主要是与UClass间的关系 现在转到ue4,发现那一块其实差不多,于是再重点备忘一下UObject本身的创建和初始化过程 1.首先,用NewObject<>来创建一个新对象: template< class T > T* NewObject(UObject* Outer, UClass* Class, FName Name = NAME_None, EObjectFlags Flags = RF_NoFl…
一.只有PlayerController和Pawn/Character才有输入事件(键盘.鼠标等等),PlayerState没有输入事件. 二.对于需要跨域关卡的数据信息,根据上图所知需要放到GameInstance,但是GameInstance是不支持复制的,所以在网络游戏中需要自己手动做GameInstance的数据同步. 三.关卡世界设置中可以设置要使用的GameMode,GameMode和世界设置都可以设置PlayerController.PlayerState等等. 四.因为Playe…
1.GameMode与场景的生命周期是相同的.使用OpenLevel切换到另外一个场景,第一个场景的GameMode就会被销毁,然后场景第二个场景的GameMode 2.GameInstance与进程的生命周期相同.只要不退出游戏,GameInstance就会一直存在,不会被销毁. 3.只要进入游戏,GameInstance就会被创建,并且保证只创建一个GameInstance. 设置自定义GameMode 这里的“世界设置”其实就是场景设置,只对当前场景有用. 项目设置里面的,是对整个游戏所有…
一人之下,万人之上 引言 上篇我们讲到了UE在World之上,继续抽象出了Player的概念,包含了本地的ULocalPlayer和网络的UNetConnection,并以此创建出了World中的PlayerController,从而实现了不同的玩家模式策略.一路向上,依照设计里一个最朴素的原理:自己是无法创建管理自身的,所以Player也需要一个创建管理和存储的地方.另一方面,上文提到Player固然可以负责一些跟玩家相关的业务逻辑,但是对于World之上协调管理的逻辑却也仍然无处安放. 如果…
GameInstance这个类可以跨关卡存在,它不会因为切换关卡或者切换游戏模式而被销毁.然而,GameMode和PlayController就会再切换关卡或者游戏模式时被引擎销毁重置,这样他们里面的状态就不能被保存.比如,你想再下一个关卡中知道上一个关卡游戏角色的位置,这时就得在GameInstance中保存游戏角色在上一个关卡的位置.用户登录的账号信息也可以保存在GameInstance中.每一个关卡都可以对应不同的GameMode和PlayController 引言 上篇我们讲到了UE在W…
UE4技术总结--委托 目录 UE4技术总结--委托 一.定义 二.用法 2.1 声明与调用委托 2.1.1 单播委托 2.1.1.a 声明 2.1.1.b 绑定 2.1.1.c 执行委托 2.1.1.d PayLoad 2.1.1.e 底层实现 绑定函数指针 Payload的实现 绑定 补充 2.1.1.f 总结 2.1.2 动态(单播)委托 2.1.2.a 声明 2.1.2.b 绑定 2.1.2.c 执行委托 2.1.2.d 底层实现 2.1.2.e 总结 2.1.3 多播委托 2.1.3.…
概述 定义 Subsystems 是一套可以定义.自动实例化和释放的类的框架.可以将其理解为 GamePlay 级别的 Component 不支持网络赋值 4.22开始引入,4.24完善.(可以移植源码到更早之前的版本使用.源码在手,为所欲为) 五类 Subsystems 及其生命周期 UEngineSubsystem(继承自 UDynamicSubsystem,UDynamicSubsystem继承自 USubsystem) UEngine* GEngine 代表引擎,数量1. Editor或…
概述 描述 保证一个类只有一个实例 提供一个访问该实例的全局节点,可以视为一个全局变量 仅在首次请求单例对象时对其进行初始化. 套路 将默认构造函数设为私有, 防止其他对象使用单例类的 new运算符. 新建一个静态构建方法作为构造函数. 使用场景 资源Manager,如 SoundManager.ParticeManager 等 线程池 多线程的单例模式,线程锁与双重检测 优缺点 优点 提供了对唯一实例的受控访问: 由于内存只存在一个对象,因此可节约资源 单例模式可以允许可变的数目的实例,使用单…