LayerMask
描述
指定要在 Physics.Raycast 中使用的层。
代码
[SerializeField] protected LayerMask whatIsGround;
Physics2D.Raycast
函数结构
public static RaycastHit2D Raycast
(Vector2 origin,
Vector2 direction,
float distance= Mathf.Infinity,
int layerMask= DefaultRaycastLayers,
float minDepth= -Mathf.Infinity, float maxDepth= Mathf.Infinity);
参数
origin | 射线在 2D 空间中的起点。 |
direction | 表示射线方向的矢量。 |
distance | 射线的最大投射距离。 |
layerMask | 过滤器,用于仅在特定层上检测碰撞体。 |
minDepth | 仅包括 Z 坐标(深度)大于或等于该值的对象。 |
maxDepth | 仅包括 Z 坐标(深度)小于或等于该值的对象。 |
代码
public virtual bool IsGroundDetected() => Physics2D.Raycast(groundCheck.position, Vector2.down, groundCheckDistance, whatIsGround);
Raycast函数返回的bool值代表了他是否接触地面。
groundCheck.position
groundCheck.position是通过transform定义的,在使用过程中,我们将在物体下方
创建新的子物体来代表GroundCheck
通过拖动至
的方式。
Gizmos.DrawLine
函数结构
public static void DrawLine (Vector3 from, Vector3 to);
描述
绘制一条从 from 开始到 to 的线。
代码
Gizmos.DrawLine(groundCheck.position, new Vector3(groundCheck.position.x, groundCheck.position.y - groundCheckDistance));
主要用于将RayCast的范围可视化如图中白线。
//---------------------------------------------//
注:本人也是萌新一个,边学边记,写下来主要是怕搞忘了。文章如有问题,还请多多包涵。
本文章在本人学完之后将会进一步进行优化,可能的话会以视频的形式进行讲解,如有需要可以先收藏。
文章参考资料:Unity自带的手册文章来源:https://www.toymoban.com/news/detail-770568.html
Unity 脚本 API文章来源地址https://www.toymoban.com/news/detail-770568.html
到了这里,关于Unity常用方法-- Collision碰撞检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!