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