函数 在编程中使用函数,可以让代码的结构更加模块化,减少代码的复用程度,基本上一个函数就是一个单一的功能,这样看上去更直观。 在蓝图中也是一样,即使它是可视化的编程,但蓝图是由节点构成的,每一个节点就是一个功能,由这样的节点去连接成一些逻辑链,如果逻辑哦很复杂,那么看上去也是相当复杂的。因为节点非常的多,所以蓝图中也有函数这样的模块,用函数去包装一…
实现射击动画的播放 进入 Player_BP 玩家蓝图,切换到事件图表。将 SkeletalMesh 骨骼网格体拖到蓝图中 在 Shoot 事件后,添加 获取动画实例 、蒙太奇播放 节点,并连接 在 蒙太奇播放 节点中设置动画资产 编译后运行 出现射击动画
实现音效播放 在 Gun_BP 枪支蓝图中,进入 事件图表 ,在 Shoot 事件后添加 播放音效2D 节点并连接 在 内容浏览器 > FPWeapon > Audio 目录下找到开枪音效 选中后导入到 播放音效2D 的资源中 编译后运行,成功出现音效
实现碰撞销毁 给子弹添加碰撞组件 在场景中添加用于碰撞目标蓝图类 当子弹撞到指定蓝图类的时候,执行子弹的销毁 3秒钟子弹没有碰撞目标,自动销毁 实现 进入 Bullet_BP 子弹蓝图,在 组件 面板中添加 Sphere Collision 碰撞组件 将碰撞组件调整至与子弹相同大小 返回预览界面,选中场景中的某个物体,以之后添加碰撞和销毁事件 右侧…
实现射击功能 在枪蓝图的 Shoot 事件中实现子弹的创建 在蓝图中持有 骨骼网格体组件 :直接拖到事件图表中 通过 骨骼网格体 获取插槽的变换 实现 在 Gun_BP 枪蓝图中建立 Shoot 自定义事件 右边空白处添加 从类生成Actor 并连接 Shoot 从 组件 面板中,将枪支 骨骼网格体组件 拖到空白处 从 Root 输出处拖线到空白处…
实现蓝图类之间的交互 添加输入控制中的操作映射:Fire 但是注意:Actor 无法接受输入事件 自定义事件的添加:自定义事件可以让功能分成块,可以在蓝图内部直接调用,也可以实现跨蓝图调用,还可以通过触发事件的方式调用 在枪蓝图中添加一个自定义事件 在玩家蓝图中定义一个枪蓝图类型的变量,当玩家碰撞到枪后,玩家蓝图持有枪蓝图 当执行 Fire 事件时…
创建子弹蓝图 要实现射击就需要动态创建子弹 添加静态网格组件 子弹射击后自己飞出去,所以需要添加发射物移动组件。配置子弹的飞行速度及重力 实现 创建一个 Actor 蓝图类 进入 Bullet_BP 蓝图,添加 静态网格体组件 将 静态网格体组件 调整为根组件 在 细节 面板中将 静态网格体 设置为球形 在 细节 面板中设置 材质 以改变子弹颜色 …
拾取枪功能 当角色碰撞到枪后,会触发事件Actor开始重叠 事件,在事件中可以拿到与当前对象发生碰撞的那个 Actor OtherActor 只是 Actor 这个类型,我们要拿到 Player_BP 这个类型就需要强制转换,要通过 类型转换为Player_BP 这个节点转换 在通过 Actor 附加到组件中 实现 进入 Gun_BP 也就是枪支蓝…
控制枪在关卡中旋转 在事件图表中实现实时旋转 进入创建的枪蓝图事件图表中。创建 事件Tick 、添加Actor世界旋转 节点 编译后运行 注意 应当进入枪蓝图中修改枪支的旋转,而不是光源蓝图
在关卡中创建枪 从类生成Actor Class :选择要创建的蓝图类 Spawn Transform :要设置的变换(用于标识蓝图类创建的位置、旋转、缩放) Collision Handling Override :如何处理生成点可能出现的物体碰撞 在关卡中创建一个空 Actor 用于标识位置 先在关卡中放置一个 Actor 在关卡蓝图中持有枪的创…