85人参与 • 2024-08-06 • ue4
在ue4中可以将变量的设置放进config文件中,可以在打包后直接修改配置文件的方式修改变量的初值。
例如:新建一个c++actor类,在类的uclass中加入config宏。
uclass(config=myactor)
class configproject_api amyactor : public aactor
{
generated_body()
其中的config=myactor myactor是与你自己想要创建的ini文件名相关。
然后再新建一个变量,
uproperty(config, blueprintreadwrite)
int32 tempa;
在uproperty中加入config标签。接着在工程的config目录下添加一个defaultmyactor.ini文件。因为我在uclass中的config填的是myactor,所以起名为defaultmyactor.ini。一定要加上default
(当前工程名字是:configproject)
然后再里面添加以下字段:
[/script/configproject.myactor]
tempa=6
类似于一个键值对,/script/configproject.myactor]的格式为/script/工程名.actor类名。
这样设置好后。在蓝图中生成myactor的蓝图子类然后打印tempa就可以打印出配置文件的赋值了。
**
注:
如果打包成development版本后你的defaultmyactor.ini会在打包后的saved/config文件夹中变成myactor.ini,但是并不会影响,继续往里面设置值就好。
如果想动态获得conifg的值,可以使用gconfig。
int32 res;
fstring gameconfigpath = fpaths::projectdir() + "/defaultmyactor.ini";
if (gconfig) {
gconfig->getint(text("/script/configproject.myactor"),
text("tempa"),
res,
gameconfigpath);
}
这个get函数的四个参数分别为:
section为键值对的方括号的内容,key为你的变量名,也即是配置文件中的变量名。value是你想要读取并赋值的变量,例如上面的代码会把读取的结果赋值给res变量,最后的filename为你的配置文件的路径名。
需要注意的是一个是上文说的打包后文件名会自动去掉default,还有就是有的博客会使用打包后的config文件,但是使用的函数是fpaths::projectconfigdir(),这个函数经测试打包后并不会返回正确的config文件夹路径,返回的是项目名/config,但是实际上打包后的config路径为
在敲代码的时候要特别留意。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论