我正在尝试检测一个篮球比赛中有球进入时丢了圈。我在环上使用以下脚本

public class Anotar : MonoBehaviour {

    private ControlJuego control;

    void Start(){
        GameObject gameControllerObject = GameObject.FindWithTag ("ControlJuego");
        if (gameControllerObject != null)
        {
            control = gameControllerObject.GetComponent <ControlJuego>();
        }
        if (control == null)
        {
            Debug.Log ("Cannot find 'GameController' script");
        }
    }

    void OnTriggerEnter (Collision col)
    {
        control.puntuar (2);
    }

    void OnCollisionEnter (Collision col)
    {
        //control.puntuar (3);
    }
}


该环具有一个设置为对撞机的盒对撞机,以检测OnTriggerEnter方法。它还具有一个网格对撞机,可检测到何时球碰到它会抛出OnCollisionEnter。我的问题是OnTriggerEnter无法正常工作(内部使用了断点,并且不会停止)。实际上,OnCollisionEnter可以正常工作。我的球有一个球体碰撞器,都使用刚体。任何的想法?

编辑:我附上我的球和戒指的屏幕截图
c# - OnTriggerEnter在Unity3D上不起作用-LMLPHP

c# - OnTriggerEnter在Unity3D上不起作用-LMLPHP

最佳答案

void OnTriggerEnter (Collision col)
{
    control.puntuar (2);
}


这永远都行不通。 OnTriggerEnter需要碰撞器而不是碰撞。
尝试这个:

void OnTriggerEnter (Collider col)
{
    control.puntuar (2);
}

10-05 19:52