Ray 射线是一种常用的物理碰撞检测方法,可用于射击游戏中模拟子弹的命中判定。
下面这段 Unity C# 代码演示了如何使用 Physics.Raycast 进行射线检测,并根据命中的物体 tag 区分敌人与环境:
RaycastHit hit;
Ray shootRay
if (Physics.Raycast(shootRay, out hit, LayerMask.GetMask("shootAble")))
{
if (hit.collider.gameObject.tag == "Enemy")
{
isHit = true;
hit.collider.gameObject.GetComponent<Enemy>().beenAttacked(damage);
}
if (hit.collider.gameObject.tag == "Environment")
{
isHit = true;
}
}