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;
            }
        }