在unity 3d中检测物体

本文关键字:检测 unity 3d | 更新日期: 2023-09-27 18:04:03

我有一个名为pacman的对象,我想知道在他的左右是否有另一个对象(饼干)。例如,我的吃豆人位置是(-55,5,-55),我想知道在(-45,5,-55)处是否有一块饼干,在他的右边10个单位处。我用的是物理。OverlapSphere,但是它给了我吃豆人周围的所有饼干我想分别检查左右

在unity 3d中检测物体

您应该从返回的Physics.OverlapSphere出发旅行所有Collider,并检查collider.transform.position

试试这个方法

public void Detect(GameObject pacman, float radius) {
        Vector3 pacmanPosition = pacman.transform.position;
        var hitColliders = Physics.OverlapSphere(pacmanPosition, radius);
        for (var i = 0; i < hitColliders.Length; i++) {
            if(hitColliders[i].gameObject.transform.position.x == (pacmanPosition.x-10)){
                //TODO
            }
            else if(hitColliders[i].gameObject.transform.position.x == (pacmanPosition.x+10)){
                //TODO
            }
        }
    }