以下是一个示例代码,用于避免射线投射命中没有层蒙版的玩家:
using UnityEngine;
public class RaycastExample : MonoBehaviour
{
public LayerMask playerLayer;
private void Update()
{
// 在摄像机视野中心发射射线
Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2f, Screen.height / 2f, 0f));
// 声明一个 RaycastHit 变量来保存射线命中的信息
RaycastHit hit;
// 发射射线,检测是否命中玩家层蒙版
if (Physics.Raycast(ray, out hit, Mathf.Infinity, playerLayer))
{
// 命中了玩家层蒙版,可以在此处执行相关逻辑
Debug.Log("射线命中了玩家");
}
else
{
// 没有命中玩家层蒙版,可以在此处执行相关逻辑
Debug.Log("射线没有命中玩家");
}
}
}
在此示例中,我们首先声明了一个 LayerMask
变量 playerLayer
,用于指定玩家层蒙版。然后,在 Update
方法中,我们发射一条射线从摄像机视野中心,并使用 Physics.Raycast
方法来检测射线是否命中了玩家层蒙版。如果命中了玩家层蒙版,我们可以在 if
语句块中执行相关逻辑;如果没有命中玩家层蒙版,我们可以在 else
语句块中执行相关逻辑。
请注意,此示例中的代码仅用于演示目的,实际使用时需要根据具体情况进行调整。
下一篇:避免事件监听器多次触发