比较运算返回的是一个布尔值,true或者flash
比较运算返回的是一个布尔值,true或者flash
布尔:只有两个值,true和flash
Byte(字节):存储0-255之间的整数值
Integer(整数):-2147483648-2147483647之间的整数
Integer64(整数):拥有64位
Float(浮点):保持最多小数点的后6位
Name(命名):对象的名称
String(字符串):可拼接
Text(文本):出现大段对话时,使用文本
Vector(向量):带有方向及长度的值
Rotator(旋转体):表示在3D空间中的旋转,设置x轴,则绕x轴旋转
Transform(变换):设置游戏对象的位置、旋转、缩放
for循环遍历数组
auto 类名:数组
攻击时停止移动:
玩家:标配位
ai:AIController->StopMovement()
可以使用2个碰撞体积来动态进行事件/行为执行和中止
例如宠物的跟随
动画蓝图一般先在编辑器中创建再进行父类的指定!!:
防止出现图表等资源的丢失
调试代码
库:Kismet/KismetSystemLibrary
可用于绘制(DrawDebug)
F开头的可能是带信息的结构体
参数中带in则为需要传入,带out则为需要写出
报错信息有NoRegister时,则为模块未包含
其他类的引用要在BeginPlay事件中赋值
RecastNavMesh可以调节导航网格的尺寸大小
可以通过设置角色模型的碰撞来让摄像机摇臂的碰撞进行选择性的碰撞
场景存在多个摄像机方便切换摄像机系统
引擎碰撞中的visible和camera默认值永远都是block
角色搭建流程:
进行分析
创建类
外观设置
基础运动功能
动画匹配
其他功能制作
可以使用组件重叠判断来辅助设计ai
可以将胶囊体缩小,搭建一套贴合角色模型的碰撞
在攻击中限制跳跃和移动
执行前判断是否正在进行攻击,可以有效解决攻击中的跳跃和移动误触,防止做出不想要的行为
对于攻击,在攻击前判断是否在跳跃或者移动
在移动中,通过判断是否正在攻击打断移动
做行为前判断其他行为的标识位,可有效做出限制
防止情况:
攻击中跳跃或移动
移动中进行攻击
跳跃中攻击
动画无法播放时,记得查看插槽名是否正确
使用标识位(bool)思想来进行行为逻辑的判断或者按帧执行
蒙太奇用于打断状态机,播放指定动画
规划与边想边做需要结合,这样才能提高开发速度
根据需求使用复用方案:
1、创建一个新父类
2、直接使用原父类
3、修改父类兼容子类需求
对组件进行追踪,将指针的类型修改为其父类,使用C++多态特性,在子类中要删除修改过的父类创建的组件,重新创建时需要修改文本宏TEXT()
switch与C++语法相同,可写在Tick中
switch可用于制作有限状态机
根据情况,对switch的结构和分支进行优化
使用switch来对枚举情况进行判断,放在Tick中用于判断状态
思考结构如何形成闭环
涉及转弯影响speed的值
在Blendspace可以修改分栏或插入相同动画序列来改善动画抖动问题
FORCEINLINE宏让函数使用内联