0x00

Unreal Engine 5(UE5)以其卓越的性能和直观的开发工具在游戏开发领域占据了重要地位。本系列将深入探讨UE5中射线检测的关键概念,着重介绍处理隐藏Actor的技巧。

0x01. 射线检测与隐藏Actor问题

在游戏中,射线检测是一项关键技术,用于实现玩家与虚拟环境的交互。然而,处理射线检测时排除隐藏的Actor是一个常见而需要小心处理的问题。在特定场景下,我们可能需要排除那些在屏幕上不可见、被隐藏的Actor,以确保交互的准确性。

0x02 正确排除隐藏的Actor的方法

在UE5中,一个常见的误解是使用ECC_Visibility碰撞频道来尝试排除隐藏的Actor。然而,这种方法是不正确的,因为ECC_Visibility主要关注物体是否可见,而不考虑它们是否被隐藏。

0x03 方法1:将Actor的Scale设置为0

在射线检测中,隐藏Actor的一种常见方法是将其Scale属性设置为0。这种方法在大多数情况下是有效的,因为它使Actor在屏幕上变得不可见。然而,需要注意的是,这并不是一种完全严谨的方法。尽管在屏幕上看不到Actor(因为它的尺寸为0),但Actor仍然存在于虚拟世界中,而且可能仍然会与射线碰撞。

0x04 # 方法2:使用Ignore Actors

另一种排除隐藏Actor的方法是在进行射线检测时设置忽略的Actor。在UE的射线检测函数中,通常有一个参数可以传递忽略的Actor数组。将隐藏的Actor添加到这个数组中,射线就会忽略这些Actor,从而达到排除隐藏Actor的效果。

在隐藏Actor的时候,同时把actor添加到这个数组中即可。

0x05 # 方法3:修改Actor的碰撞属性

隐藏Actor的同时,将其碰撞属性设置为不可碰撞是另一种方法。通过将Actor的碰撞属性设置为不可碰撞,射线在进行碰撞检测时会忽略这些被隐藏的Actor。

0x06 # 为什么ECC_Visibility不能直接排除隐藏Actor

ECC_Visibility主要关注物体的可见性,而不仅仅是它们是否显示在屏幕上。即使一个Actor被隐藏,它在可见性碰撞频道上依然存在碰撞体积,因此仍然会被射线检测所考虑。这就是为什么ECC_Visibility不能直接用于排除隐藏Actor的原因。

0x07 总结

在射线检测中,正确排除隐藏的Actor是确保游戏交互准确性的关键步骤。每种方法都有其适用的场景,开发者可以根据项目的具体需求选择最合适的方法。在选择方法时,需要考虑方法的性能、准确性以及对项目整体架构的影响。通过深入理解每种方法的原理,开发者可以更好地处理射线检测中的隐藏Actor排除问题。

结尾

最后,关注公号“ITMan彪叔” 可以添加作者微信进行交流,及时收到更多有价值的文章。

UE5 射线检测排除隐藏的Actor的更多相关文章

  1. 【Unity3D】枪战游戏—发射子弹、射线检测

    一.子弹的碰撞检测: 因为子弹的移动速度非常的快,那么如果为子弹添加一个collider,就有可能检测不到了. 因为collider是每一帧在执行,第一帧子弹可能在100米处,那么下一帧就在900米处 ...

  2. Unity3D 之射线检测

    这里来记录下射线检测的相关内容: 射线检测故名就是通过射线去检测是否和碰撞器产生了交集,和碰撞器与碰撞器发生交集一样,会返回一个真. 射线的用法很多:比如检测是否跳跃,通过向地面投射射线控制在地面时候 ...

  3. Unity3D 5.0简单的射线检测实现跳跃功能

    这里是一个简单的跳跃,5.0和其他版本貌似不一样,并且,再起跳功能做的不完全. 不过一个基本的思路在这里. 1.首先,射线检测,这里是利用一个空对象,放到主角对象的下面 2.然后调节射线的位置,在主角 ...

  4. UGUI射线检测

    1.Graphic Raycaster 主要用于UI上的射线检测,挂有这个组件的物体,必须要挂上Canvas这个组件(当挂上Graphic Raycaster时Canvas也会自动挂上). Ignor ...

  5. Unity射线检测的用法总结

    RayCast 射线检测 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心 ...

  6. U3D学习10——关节和射线检测

    1.弹簧  2.铰链  3.固定关节  4.角色关节  5.自定义关节  6.raycast和raycasthit 射线有位移参数,可以设定只触发某一层的. 7.射线检测用于高速和精确 update是 ...

  7. Layabox 3D游戏开发学习笔记---射线检测,鼠标控制物体运动

    核心要点:3D物体碰撞是靠射线检测,射线与碰撞器相撞获取对应的碰撞点信息. class RayPicking03 { private ray: Laya.Ray; private point: Lay ...

  8. 【转】 [UnityUI]UGUI射线检测

    http://blog.csdn.net/lyh916/article/details/50947026 1.Graphic Raycaster 主要用于UI上的射线检测,挂有这个组件的物体,必须要挂 ...

  9. Unity - Raycast 射线检测

    本文简要分析了Unity中射线检测的基本原理及用法,包括: Ray 射线 RaycastHit 光线投射碰撞信息 Raycast 光线投射 SphereCast 球体投射 OverlapSphere ...

  10. Unity的学习笔记(射线检测)

    首先,射线检测的API是这样的,网上找了一下,这个图片看得很清楚: 接下来是自己使用这个进行测试 using System.Collections; using System.Collections. ...

随机推荐

  1. VRRP 虚拟路由器冗余协议

    目录 文章目录 目录 为什么要使用 VRRP 技术? VRRP VRRP 的概念 VRRP 的工作原理 VRRP 的状态机 VRRP 的工作过程 VRRP 的选举机制 VRRP 的报文格式 VRRP ...

  2. 4G EPS 中的 Bearer

    目录 文章目录 目录 前文列表 承载的内涵 EPS Bearer QoS QoS 的关键参数 APR GBR.MBR AMBR UE 是如何选择 EPS Bearer 的? E-RAB Radio B ...

  3. EDP .Net开发框架--WebApi

    平台下载地址:https://gitee.com/alwaysinsist/edp 按分类管理EDP所提供的WebApi接口,以供其他应用调用.WebApi接口不仅可以进行访问控制管理,同时还提供了版 ...

  4. centos7下xfs文件系统的备份和恢复:完全备份,增量备份,差异备份

    目录 一.关于xfs文件系统 二.xfsdump的备份级别和注意事项 三.完全备份整个目录/分区,然后恢复数据 四.完全备份分区中某个目录,然后恢复某个文件/文件夹 五.增量备份 一.关于xfs文件系 ...

  5. Docker批量删除容器/镜像

    1.删除所有的容器 docker rm `docker ps -a -q` 2.删除所有的镜像 docker rmi `docker images -q` 提示: -q参数:只显示容器ID

  6. PaddleOCR在 windows下的webAPI部署方案

    很多小伙伴在使用OCR时都希望能过采用API的方式调用,这样就可以跨端跨平台了.本文将介绍一种基于python的PaddleOCR识方案.喜欢的可以关注公众号,获取更多内容. # 一. windows ...

  7. exception EXC_RESOURCE - WAKEUPS 分析(二)

    一.问题: 直播助手在使用ReplayKit2 Extension的过程中,ReplayKit2的Upload进程工作在后台模式,苹果对处于后台的进程进行了内存和CPU资源的限制. 对于内存: 每种E ...

  8. 8个实用的Java Streams API

    分享8个开箱即用的API,方便日常处理集合. 1. 快速过滤空值:Stream.ofNullable 该方法是在 Java 9 中引入的,有助于过滤集合中的所有空值,从而可能使我们避免空指针异常. 在 ...

  9. swap文件修复

    修复swap文件 vim -r /aaaa.swap

  10. numpy cumsum()函数简介

    函数原型:numpy.cumsum(a, axis=None, dtype=None, out=None) 可参考链接:https://docs.scipy.org/doc/numpy-1.10.1/ ...