射线碰撞屏(蔽掉不想要的层)
public LayerMask mask;
public Camera _camera;
void Start()
{
mask =-1<<LayerMask.NameToLayer("L2"); //从L2层开始以下
}
void Update() {
if (Input.GetMouseButtonDown(0))
{
Ray ray = _camera.ScreenPointToRay(Input.mousePosition); //发射射线
RaycastHit hit;
if (Physics.Raycast(ray,out hit,500,mask.value)) //如果射线撞到物体
{
Debug.Log(hit.collider.name );
}
}
}
public LayerMask mask;
public Camera _camera;
void Start()
{
mask =-1<<LayerMask.NameToLayer("L2"); //从L2层开始以下
}
void Update() {
if (Input.GetMouseButtonDown(0))
{
Ray ray = _camera.ScreenPointToRay(Input.mousePosition); //发射射线
RaycastHit hit;
if (Physics.Raycast(ray,out hit,500,mask.value)) //如果射线撞到物体
{
Debug.Log(hit.collider.name );
}
}
}
本文介绍了一个Unity中的射线碰撞检测示例,通过设置LayerMask来屏蔽特定图层,实现鼠标点击时只检测到指定图层的物体。示例中详细展示了如何在Start方法中初始化LayerMask,以及在Update方法中进行射线投射并检查碰撞。
3620

被折叠的 条评论
为什么被折叠?



