UE4 Config配置文件详解(2017.4.1更新)

本文深入探讨了UE4中的Config配置文件,包括配置文件的结构、目录、存储原理和使用流程。配置文件分为多个层次,如Compat、DeviceProfiles、Engine等,具有固定的文件层次结构,后生成的文件会覆盖前一个层级的配置。配置信息通过全局变量GConfig管理和存储,使用SaveConfig和LoadConfig函数进行读写。配置文件的意义在于提供初始化属性的值,通过配置文件的读取和保存,实现游戏项目的个性化设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前文档中的错误已经更正,欢迎大家随时指出文章的不足。

(如果只是想了解如何使用,直接看第三章节就可以了)

一 配置总体概述

UE4中,配置文件(Config)其实就是.ini文件。可以用于设置加载时要初始化的属性的值,配置信息按照键值对的格式来实现。虚幻4官方文档只有简单的使用规则,要想深入了解还需要查看源代码才行,所以这里我把自己的学习成果分享给大家。一个完整的配置文件格式如下图1-1所示。

 

图1-1 配置文件格式示意图

我们所见到的配置文件一般只存在于以下四个路径。

1. \Engine\Config及其子目录

2. \Engine\Saved\Config及其子目录(引擎运行后生成)

3. Projects\[ProjectName]\Config及其子目录

4. Projects\[ProjectName]\Saved\Config及其子目录(游戏项目运行后生成)

如上面所标记的,路径2与路径4的配置信息都是后生成的。

 

二 概念须知

 

为了后面的描述清晰,这里需要先简单描述一些基本原理以及一些概念。

 

2.1 概念

Section:如上图1-1,每个配置文件里面有很多模块,每个模块的标题就是一个section。

Flush:在代码里面,类FConfigCacheIni有一个名为Flush()的方法。它的表面意思是冲洗,奔涌,在代码里面表示将内存信息(即缓存的配置信息)准确无误的书写到文件里面。

GConfig:全局空间的一个配置缓存变量。定义如下FConfigCacheIni*  GConfig =NULL;在不同的情况下存储不同的信息,如图2-1,图2-2。关于GConfig的内容后面会有较为详细的讲解。

 

图2-1 运行纯引擎编辑器时GConfig存储的信息

 

SaveConfig函数:这个函数用来将配置信息保存到GConfig并保存到文件里面。(后面会详细解释他的使用以及参数的意义)。

LoadConfig函数:这个函数用来读取配置文件的信息并将该信息赋值给当前类对应的属性。(后面会进一步解释)

UCLASS(config=FileName):表示这个类默认条件下将配置信息保存到哪个配置文件,config后面的文件名可以是任意字符串。

UCLASS(perObjectConfig):表示这个类的配置信息将会基于每个实例进行存储。

UCLASS(config=XXX,configdonotcheckdefaults):表示这个类对应的配置文件不会检查XXX层级上层的DefaultXXX配置文件是否有该信息(后面会解释层级),就直接存储到Saved目录下。

UPROPERTY(config):不指定Section的情况下,标记config的这个属性在保存到配置文件里面的时候会保存在当前类对应的Section部分。同理,加载的时候也会从当前类对应的Section下加载。

UPROPERTY(globalconfig):不指定Section的情况下,标记config的这个属性在保存到配置文件里面的时候会保存在基类对应的Section部分。同理,加载的时候也会从基类对应的Section下加载。

注:如果这里有些内容不太理解,可以等看完后面再回头来看这些概念

 

2.2 基本原理

 

2.2.1 配置文件结构

 

为了对配置文件有一个整体的了解,我们必须要弄清配置文件的结构。

1.      配置分类

Compat(兼容性)

DeviceProfiles(设备概述文件)

Editor(编辑器)

EditorGameAgnostic(编辑器游戏未知的配置信息)

EditorKeyBindings(编辑器按键绑定)

EditorUserSettings(编辑器用户设置)

Engine(引擎)

Game(游戏)

Input(输入)

Lightmass(灯光构建相关)

Scalability可扩展性

EditorLayout(编辑器布局)

SourceControlSettings(源码控制设置,只存在于引擎和工程的Save目录)

TemplateDefs(模板定义,只存在于引擎和工程的Save目录)

 

上面基本描述了所有配置文件的类型,不同类型的配置设置放在不同的文件里面。当

然上面这些只是UE4为我们提供的文件类型,我们也可以定义自己的配置文件,也可以把内容放到你想放的任意一个文件里面。

在文档的最后面的附录会大致描述当前项目不同目录下配置文件存储的信息内容。

 

2.      文件层次结构

 

配置文件读入时从Base.ini开始,文件结构中后面文件内的值覆

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值