IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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函数

Interface

打开受到攻击的角色蓝图,并打开 类设置,添加 刚刚创建 的接口

引入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

获取场景空间插槽或骨骼的位置

Get Socket Location

MutiLineTranceByChannel

沿给定的线执行碰撞检测,并返回遭遇的所有命中,包含首个阻挡命中。

此检测将找到响应给定TraceChannel的对象

MutiLineTranceByChannel

start :开始位置

end :结束位置

Trace Channel:可见性,选择通道

Trace Complex: 每个碰撞体都有两个版本的包围盒,此处选择碰撞包围盒类型是Simple还是Complex

Actors to Ignore:额外需要排除在碰撞对象之外的对象数组

draw Debug Type : 调试bug,会出现线来辅助,默认为无,若选择可以修改选项

Ignore Self: 是否排除和自身的碰撞(默认为true)

  • Trace Color:射线的颜色
  • trace Hit Color:碰撞的物体后射线的颜色
  • Draw Time :绘制的时间
  • Out Hit:返回碰撞的物体的信息

返回值 :

  • Return Value: 布尔类型,是否发生了碰撞。
  • Out Hit: 结构体类型的碰撞结果,展开以后如下:

在这里插入图片描述

Out Hit Distance射线起点到碰撞点的距离;

Out Hit Location碰撞点的世界坐标;

Out Hit Normal 碰撞点的法线。

Does Implement Interface

是否引入特定的 蓝图接口

Does Implement Interface

Get Owner

跟随外部链获取"拥有"此组件的AActor,获得此Actor的所有者,

在这里插入图片描述

具体内容

实时监测

获取所有的socket的名字

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在动画中开启和关闭射线

动画通知(Animation Nofity)

创建动画通知状态(AnimNotifyState)

在这里插入图片描述

使用 动画通知状态

创建攻击蒙太奇

  1. 添加通知轨道

在这里插入图片描述

  1. 添加通知状态
    通知状态

其中 Hit 为创建的动画通知状态

重载 动画通知状态 内的函数

打开之前创建的 AnimNotifyState

重载函数 Received_NotifyBeginReceived_NotifyEnd,即 开始接收通知 和 结束接收通知

在这里插入图片描述

其中:HitWeapon 为创建的 攻击判断组件

使用攻击判断组件

在角色蓝图中添加攻击判断组件

在这里插入图片描述

参考资料

【UE4】游戏中近战攻击判定检测(一)——射线检测!

玩转UE4动画系统>基础篇 之 什么是射线检测

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:59:23  更:2022-09-21 01:00:20 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码