前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UE5 射线检测排除隐藏的Actor

UE5 射线检测排除隐藏的Actor

作者头像
用户3158888
发布2024-02-12 09:07:54
1970
发布2024-02-12 09:07:54
举报

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彪叔” 可以添加作者微信进行交流,及时收到更多有价值的文章。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00
  • 0x01. 射线检测与隐藏Actor问题
  • 0x02 正确排除隐藏的Actor的方法
  • 0x03 方法1:将Actor的Scale设置为0
  • 0x04 # 方法2:使用Ignore Actors
  • 0x05 # 方法3:修改Actor的碰撞属性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档