【unity2D】API-学习记录9-射线类Ray2D
目标
在游戏开发中,射线的使用非常广泛。今天来学习Ray2D的相关内容以及如何发射2D射线。
前言
- unity中有应用于2D游戏中的射线,其中,Ray2D射线类和RaycastHit2D射线投射碰撞信息类是最常用的两个射线工具类。前者用来创建射线,后者用来存储发射射线后产生的碰撞信息。今天先来学习射线类Ray2D。
- UnityAPI中文文档看上去像是机翻,有些描述很莫名其妙,我这里对其中一些描述进行了改动,改动处会标明有“(改动前)”和“(改动后)”字样。
Ray2D是什么
Ray2D是一个类,下图展示了它的构造函数:
变量 | 解释 |
---|---|
origin | 世界空间中的射线起点。 |
direction | 世界空间中的射线方向。 |
API对Ray2D的解释 |
公共函数
公共函数 | 解释 |
---|---|
GetPoint | 获取射线上位于给定距离处的点。 |
如何发射2D射线
发射2D射线用到的是:Physics2D.Raycast()
API对Physics2D.Raycast的解释
Physics2D.Raycast
参数 | 解释 |
---|---|
origin | 射线在 2D 空间中的起点。 |
direction | 表示射线方向的矢量。 |
distance | 射线的最大投射距离。 |
layerMask | 过滤器,用于仅在特定层上检测碰撞体。 |
minDepth | 仅包括 Z 坐标(深度)大于或等于该值的对象。 |
maxDepth | 仅包括 Z 坐标(深度)小于或等于该值的对象。 |
Returns
返回
Description
描述
最后一段有些难懂,具体请参考RaycastHit2D.normal和RaycastHit2D.fraction
注意事项
经过测试发现:
- 对于“尚未设置distance或distance设置过短”的Physics2D.Raycast,如果射线起点即在碰撞体内,则检测到该碰撞体并返回相关的RaycastHit2D,不再向前检测了。
- 对于“设置了足够长的distance”的Physics2D.Raycast,它会返回检测到的最后一个碰撞器的相关RaycastHit2D。
- 射线可以检测到触发器。
补充
- 关于Physics2D.Raycast,其可以返回RaycastHit2D类型的结果,关于RaycastHit2D的内容之后再学(其实不能把它们割裂开理解)。
- Physics2D.Raycast还可以返回int类型的结果,具体有何作用,请参考Unity API Physics2D.Raycast
参考资料
Unity API Ray2D
Unity API Physics2D.Raycast
__EOF__

本文作者:OtusScops
本文链接:https://www.cnblogs.com/OtusScops/p/14734591.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/OtusScops/p/14734591.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
API
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!