| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 武器的射线检测——socket -> 正文阅读 |
|
[游戏开发]武器的射线检测——socket |
文章目录给武器添加 socket 插槽打开武器的蓝图,并创建插槽,移动位置 将武器绑定到角色上,见 文章 武器和插槽 给敌人添加一个能被攻击的interface创建蓝图接口,并添加 GetHit函数 打开受到攻击的角色蓝图,并打开 类设置,添加 刚刚创建 的接口 实现 GetHit 函数 这里 播放了一个蒙太奇动画,角色的受击动画 制作HitHandlerComponent(攻击判定组件)创建Actor组件 变量场景组件 Weapon : 场景中的组件 数组(命名) SocketName : 保存存放的 发射点socket 的名称 Bool TranceOpen :判断是否开启检测 Map(命名:向量) PreSocketLocation :保存 发射点socket 的位置 数组(Actor) DamagedActor :额外需要排除在碰撞对象之外的对象数组 函数InitWeaponSocket : 获取场景中需要发出射线的组件,并初始化 SocketName 的内容,保存 发射点socket 的名称 Trance : 创建射线检测 EnableTrace :开启检测,初始化所有数据 DisableTrace :关闭检测 UpdateTrance : 更新socket的位置 蓝图节点Get Socket Location获取场景空间插槽或骨骼的位置 MutiLineTranceByChannel沿给定的线执行碰撞检测,并返回遭遇的所有命中,包含首个阻挡命中。 此检测将找到响应给定TraceChannel的对象 start :开始位置 end :结束位置 Trace Channel:可见性,选择通道 Trace Complex: 每个碰撞体都有两个版本的包围盒,此处选择碰撞包围盒类型是Simple还是Complex Actors to Ignore:额外需要排除在碰撞对象之外的对象数组 draw Debug Type : 调试bug,会出现线来辅助,默认为无,若选择可以修改选项 Ignore Self: 是否排除和自身的碰撞(默认为true)
返回值 :
Out Hit Distance射线起点到碰撞点的距离; Out Hit Location碰撞点的世界坐标; Out Hit Normal 碰撞点的法线。 Does Implement Interface是否引入特定的 蓝图接口 Get Owner跟随外部链获取"拥有"此组件的AActor,获得此Actor的所有者, 具体内容
在动画中开启和关闭射线动画通知(Animation Nofity)创建动画通知状态(AnimNotifyState) 使用 动画通知状态创建攻击蒙太奇
其中 Hit 为创建的动画通知状态 重载 动画通知状态 内的函数打开之前创建的 AnimNotifyState 重载函数 Received_NotifyBegin 和 Received_NotifyEnd,即 开始接收通知 和 结束接收通知 其中:HitWeapon 为创建的 攻击判断组件 使用攻击判断组件在角色蓝图中添加攻击判断组件 参考资料 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 4:30:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |