草庐IT

【UE】pak的mount(带源码解析)

本文使用的引擎版本为UE4.27为了方便理解,文中选取的代码均为部分截取,只截取与小节相关的部分文章目录概述几个涉及到的结构Mount时机pak读取优先级目录优先级根据文件名定优先级综上所述概述正常的散文件加载是使用FFileHelper::LoadFileToArray等接口来读取文件内容。但pak作为一个类似于压缩包的格式,其中的文件无法直接使用这种方式读取。故需要使用mount来挂载。mount操作告诉系统有哪些文件可以从pak中读到,并提供虚拟路径使系统可以通过FPakPlatformFile::CopyFile、FFileHelper::LoadFileToString等操作普通文件

【UE】pak的mount(带源码解析)

本文使用的引擎版本为UE4.27为了方便理解,文中选取的代码均为部分截取,只截取与小节相关的部分文章目录概述几个涉及到的结构Mount时机pak读取优先级目录优先级根据文件名定优先级综上所述概述正常的散文件加载是使用FFileHelper::LoadFileToArray等接口来读取文件内容。但pak作为一个类似于压缩包的格式,其中的文件无法直接使用这种方式读取。故需要使用mount来挂载。mount操作告诉系统有哪些文件可以从pak中读到,并提供虚拟路径使系统可以通过FPakPlatformFile::CopyFile、FFileHelper::LoadFileToString等操作普通文件

UE 如何保存全局变量

    游戏过程中我们经常需要保存一些全局变量,如玩家的总得分、当前生命值等等,在我们切换关卡之后它们的数值保持不变。在UE中主要使用SaveGame类对象和GameInstance对象。    首先,点击右键创建蓝图类,输入save创建SaveGame蓝图类对象,命名为MySaveGame;输入Gameins创建一个GameInstance蓝图类对象,命名为GameManager。          MySaveGame中定义一些全局变量,如分数、玩家生命值。GameManager中需要定义一个MySaveGame类型的变量,并且这里使用玩家生命值来进行演示。在GameManager初始化的

UE4C++之动态多播委托的简单使用

本文讲述一下动态多播委托的简单使用,包括它的声明,定义,在蓝图中的使用。我这边使用的前提是在创建了一个属性组件,添加到角色中,当角色收到血量改变的通知的时候,会进行相应的处理。DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(FOnHealthChanged,AActor*,InstigatorActor,UAttributeComponent*,AttributeComponent,float,NewHealth,float,Delta);定义变量,注意在public权限内使用,因为外部会引用到。BlueprintAssignable标识符,表示在蓝

UE4场景中多个固定摄像机间切换视角

在场景中提前摆放好摄像机调整好摄像机角度,并且将摄像机更名为transform1在蓝图中设置蓝图解释通过类获取所有摄像机通过名称来获取到切换的摄像机blendtime是相机切换的过渡时间,不会让画面切换的很生硬newviewtarget是要切换到的相机

UE4编辑器间隔一会儿就发出提示: request failed, libcurl error: 7;libcurl info message cache 0

现象UE4EditorUE4编辑器间隔一会儿就发出提示:requestfailed,libcurlerror:7;libcurlinfomessagecache0;报错内容显示是连接一个服务器地址失败;原因:UE4默认会收集编辑器的信息,并且反馈给服务器。而我离线使用UE4的,所以它连不到服务器,提示&报错解决方法:关闭反馈:EditorPreference->Privacy->BugReports选择Don’tSendEditorPreference->Privacy->UsageData选择Don’tSend

UE5学习笔记(一)——界面功能梳理&第一天知识点记录

学习UE5的第一步,是软件安装。默认是安装好的,由于安装没有太多技术含量,所以就没有专门做记录。这里有个注意点,虚幻引擎是整合在Epicgameslauncher中的,也就是说开发引擎内嵌在游戏平台上,打个比方,就是如果你要下unity你必须先下一个steam的感觉。当然,在完成安装之后,就可以通过快捷方式直接打开UNREAL引擎了。第一个工程,我按照教程选择了第三人称视角的工程,它预制好了很多按键,并且有了一个基本地形,这样可以快速的完成上手。正如上一篇文章提到的,UE5的目标就是为开发者减少不必要的操作,所以在学习阶段,可以不用从头开始,以泛读的方式了解所有的内容。这里要注意一点,因为市面

如何使用UE5新功能 “打包型关卡Actor” 实现场景的性能优化

如何使用UE5新功能“打包型关卡蓝图”实现场景性能优化内容分为:简介实操优化结果展示看不懂原理看看实操就大概就能明白什么是“打包型关卡蓝图”“打包型关卡蓝图”是UE5新功能世界分区(WorldPartition)的一部分但不依赖于项目是否启用了世界分区官方文档有关世界分区中关卡实例化的内容优化的原理官方文档:这个功能的原理是将场景中的静态网格体资产合并以创建进行了渲染优化的单一蓝图Actor。将静态网格体替换为链接到打包型关卡Actor(PackedLevelActor)的打包型关卡蓝图(PackedLevelBlueprint)实例。人话:将“模型”放入“关卡资产”;“关卡资产”放入“Act

UE4 运行后视角切换到Cinecamera相机的三种方法

目的:解决运行后Cinecamera相机无法自动切换到玩家视角方法:1.调用这个蓝图节点,这个最简单(适合只考虑切换视角的需求)2.制作并播放关卡序列,这个有点麻烦(适合需要做关卡序列动画)3.创建GameMode和Pawn(添加Cinecamera组件),选择“玩家0”(适合需要使用自定义的GameMode)

UE 学习笔记(一)FString::Printf 和 FString::Format

TEXT(string)TEXT宏,作用是将字符串转换成Unicode,切记UE中使用字符串输出要使用该宏UE_LOG(日志类型,日志等级,字符串)UE_LOG宏,可在UEeditor中输出调试内容。FStringFString是UE里的自定义类型,类似C++中的String,用于存放字符串。FString::Printf用于将两个不同类型的变量,通过占位符%+类型(例如%s代表字符串,%d代表整型)进行组合,生成FString类型。FStringName="V";int32Age=23;FStringstr=FString::Printf(TEXT("Name:%s,Age:%d"),*Na