命名规范
蓝图类以 BP_作为前缀 对应Blue Print
混合空间以 BS_作为前缀 Blend Space
静态网格体以 SM_作为前缀 StaticMesh
骨骼网格体以 SK_作为前缀 Skeletal Mesh
纹理以 T_作为前缀 Texture
粒子系统 以 PS_作为前缀 Particle System
主材质以 M_作为前缀 Material
材质子类以 MI_作为前缀 对应 Material Instance
精灵图 以 SP_作为前缀 对应 Sprite
HDR纹理 HDR_
物理资产 PHYS_
物理材质 PM_
后期处理材质 PPM_
Actor组件 AC_
动画蓝图 ABP_
蓝图接口 BI_
曲线表 CT_
数据表 DT_
枚举 E_
结构体 F_
控件蓝图 WBP_
绑定 Rig_
骨架 SKEL_
蒙太奇 AM_
动画序列 AS_
混合空间 BS_
Niagara发射器 FXE_
Niagara系统 FXS_
Niagara函数 FXF_
官方命名规范:点击这里
文件夹命名
- 关卡(Maps)
- 蓝图(Blueprints)
- 动画(Animations)
- 音频(Sounds)
- 材质(Materials)
- 纹理(Textures)
- 特效(Effects)
- 模型 (Meshes)
- UI (Widges)
流程控制
分支相当于if 判断
这是需要执行的节点,不需要执行的直接获取,则使用选择,我们可以使用布尔,整数或者枚举获取
Do N可以根据设置的数值进行多次运行
DoOnce 只运行一次
FlipFlop 这个就有意思了,每次调用走不同的执行接口,突出一个左右摇摆
ForLoop 相当于forEach循环
ForLoopWithBreak 相当于在forEach循环中增加了打断循环的break
Gate 门节点,这个节点有意思,设置Open以后,后续执行才可继续,Enter作为输入,但是没有执行Open执行,后续也不会执行
MultiGate 可以考虑成FlipFlop的放大版,FlipFlop只能两个循环,MultiGate可以自定义输出执行,并按索引位置开始向后执行,并且还可以随机。
Sequence 序列 可以让一个执行去同时触发多个执行
WhileLoop 相当于while循环,变量只要为true,就能一直执行下去
结构体
结构体的前缀使用F_
中文可以通过右键创建 + 结构体名称创建一个新的结构体
相同的结构体可以设置数据
从结构体获取数据,需要中断,英文就是break
或者直接在变量上面分割结构体引脚
蓝图之间的通信
-
直接通信
就是从蓝图中调用需要通信的实例,然后直接调用它身上的变量或者函数事件等。比如在角色蓝图中修改动画蓝图身上的变量
应用场景,拾取物品,控制门,灯等需要交互的物品 -
事件监听器
蓝图内监听某个事件,当别的蓝图触发时此事件时,直接运行 -
蓝图接口
需要创建一个蓝图接口文件,这个文件只有函数名,不会有相关函数的实现
在需要继承相关接口的继承接口
然后在其它蓝图内调用相应的函数事件
这种方式可以实现角色调用想用的事件,实现在物体上面不同的逻辑,比如角色和某个物体进行了交互,告知物体实例角色蓝图调用了你交互的事件,你可以根据自身实现的方法来实现某些操作。
比如:
角色和灯进行了交互,灯可以进行开关,而门的当前实现是打开和关闭 -
蓝图转换
将一个对象或者一组对象转换成基于什么类生成的,可以直接调用当前身上的方法,
比如将对象转换成角色蓝图实例,成功了就可以调用其身上的事件
又或者转换成怪物,调用其它的事件。
获取玩家
最简单的方式是基于类去获取,如果当前场景中只存在一个玩家的话
并且还可以根据标签去获取,它可以返回一个布尔值,方便我们找到真正需要的实例
直接获取玩家角色,如果获取到的第一个pawn不是charactor类型,则会返回空
也可以使用获取pawn,pawn类型主要给玩家角色提供了运动相关的能力
带有执行引脚转换为纯类型转换
某些节点可以支持不需要执行引脚就可以获取结果,比如类型转换
我们鼠标右键,会在最下面发现一个转换为纯类型转换,
可以转换成不需要执行的节点
当前,如果能够转换为非纯类型的,也可以实现转换。
场景多个相机进行切换
使用混合设置视图目标,可以实现相视图的切换,交给玩家控制器即可。
实现本地保存功能
首先创建一个蓝图类,搜索SaveGame
里面可以可以创建一些需要保存的内容,变量,或者一些需要处理后保存的名称
在使用之前首先要判断你要存储的存档是否存在,通过名称去判断,这里可以知道,你可以将需要存储的内容,分为多个内容去存储
如果存档不存在的话,我们需要先创建存档
创建了新的存档,我们可以设置实例内的变量数据
设置完成以后,还需要保存数据,方便下次启动游戏使用,保存数据分为两种,一种是同步一种是异步
如果存档存在,我们需要从插槽加载数据,加载也有两种方式,同步和异步