尽量避免在c++中硬编码素材
尽量避免在c++中硬编码素材
可以从蓝图提示上获得C++的信息
双击蓝图节点可获得C++函数名
Lambda表达式:
auto 函数名=[捕获列表 ]()
{
}
在C++代码中可以直接使用return来中止函数
攻击可以使用状态机!以进行连段
可以在准备要执行代码的位置提前先注释//TODO这样可以预先规划位置出来,方便进行查找
可以将修改UI和属性值的逻辑放在TakeDamage事件中
攻击碰撞盒可以设置成worldDynamic
仅限3d游戏可以使用碰撞器来造成伤害,因为组件有插槽可以使用
for循环遍历数组
auto 类名:数组
攻击时停止移动:
玩家:标配位
ai:AIController->StopMovement()
可以使用2个碰撞体积来动态进行事件/行为执行和中止
例如宠物的跟随
动画蓝图一般先在编辑器中创建再进行父类的指定!!:
防止出现图表等资源的丢失
调试代码
库:Kismet/KismetSystemLibrary
可用于绘制(DrawDebug)
F开头的可能是带信息的结构体
参数中带in则为需要传入,带out则为需要写出
报错信息有NoRegister时,则为模块未包含
其他类的引用要在BeginPlay事件中赋值
RecastNavMesh可以调节导航网格的尺寸大小
可以通过设置角色模型的碰撞来让摄像机摇臂的碰撞进行选择性的碰撞
场景存在多个摄像机方便切换摄像机系统
引擎碰撞中的visible和camera默认值永远都是block
角色搭建流程:
进行分析
创建类
外观设置
基础运动功能
动画匹配
其他功能制作
可以使用组件重叠判断来辅助设计ai
可以将胶囊体缩小,搭建一套贴合角色模型的碰撞
在攻击中限制跳跃和移动
执行前判断是否正在进行攻击,可以有效解决攻击中的跳跃和移动误触,防止做出不想要的行为
对于攻击,在攻击前判断是否在跳跃或者移动
在移动中,通过判断是否正在攻击打断移动
做行为前判断其他行为的标识位,可有效做出限制
防止情况:
攻击中跳跃或移动
移动中进行攻击
跳跃中攻击
动画无法播放时,记得查看插槽名是否正确
使用标识位(bool)思想来进行行为逻辑的判断或者按帧执行