我制作了一个游戏,我使用光线投射来确定玩家是否在物体上。我知道如何使用图层来做到这一点,但我宁愿做到这一点,以便检查它是否遇到带有标记的对象。下面是代码:
isObject = Physics2D.Linecast (this.transform.position, groundedEnd.position, 1 << LayerMask.NameToLayer ("Object"));
因此,我不想与名为“Object”的图层掩码进行比较,而是检查它是否遇到带有标记的对象,但我不知道用什么来替换LayerMask。
答案 0 :(得分:1)
您可以使用此代码:
RaycastHit2D h = Physics2D.Linecast(p1, p2);
if(h.collider.tag == "YOUR_TAG")
{
//Do your stuff
}
答案 1 :(得分:1)
没有2D光线投射的经验,但是在3D中检查光照的命中对象的标签是这样的,也许你可以稍微改变它以应用于2D:
RaycastHit raycastHit;
if(Physicas.Raycast(from, to , out raycastHit, maxDistance)){
Collider = raycastHitCollider = raycastHit.collider;
if (raycastHitCollider.gameObject.tag == "Your tag here"){
//do stuff
}
}