我试图在篮球比赛中发现一个球进入投球圈。我在环上使用以下脚本
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工作正常。我的球有一个球体对撞机,都使用刚体。有什么想法吗?
答案 0 :(得分:2)
你应该在篮球上添加运动刚体。静态触发器可以检测刚体,但即使触发器具有刚体,它也不会检测到移动的碰撞器。
答案 1 :(得分:2)
void OnTriggerEnter (Collision col)
{
control.puntuar (2);
}
这将永远不会奏效。 OnTriggerEnter需要一个Collider而不是Collision。 试试这个:
void OnTriggerEnter (Collider col)
{
control.puntuar (2);
}
答案 2 :(得分:0)
我遇到了同样的问题,我试图用箭射击敌人,但是一开始没有调用箭头OnTriggerEnter(Collider collider),我启用了“触发”敌人(我要尝试的身体)调用该方法)终于解决了我的问题。