所以,我有这个代码:
if(Input.GetMouseButtonDown(0)){
ray = Camera.main.ScreenToWorldPoint(Input.mousePosition);
hit = Physics2D.Raycast(ray, Vector2.zero, maskLayer2.value);
if(hit.collider != null){
TagName = hit.transform.tag;
}
}
我有两个不同的对象及其各自的图层:图层 1 和图层 2,我希望光线投射检测图层 2 中的对象。问题是,它们的碰撞器重叠,光线投射仅检测到第 1 层的碰撞器,最终给出了错误的 TagName。 LayerMask中唯一的层是layer2,所以我不知道该怎么办。有谁知道如何解决这个问题吗?
看起来您使用了错误的
Physics2D.Raycast
重载
public static RaycastHit2D Raycast(Vector2 origin, Vector2 direction, float distance)
因此您的图层蒙版被用作距离,而不是图层蒙版。
在参数列表中添加图层蒙版前的距离。
Physics2D.Raycast(origin, direction, distance, layerMask)