如何检测与预制件的子弹碰撞

时间:2015-06-28 07:20:27

标签: unity3d

我开始学习Unity并决定做一些练习。所以,我认为开发“Flappy Bird”作为实验真是太棒了。但我遇到了这个问题。你知道,当你在管道之间飞行时,你会获得一分。为此,我制作了一个带有两个管道的预制件和一个空的游戏对象(触发器),以检测与它的碰撞。但是当我调用OnCollisionEnter2D方法时,它会检测到与预制件的碰撞,而不是触发器或管道。你可以帮帮我吗?如何检测与预制件的子弹碰撞?

2 个答案:

答案 0 :(得分:3)

像Uri Popov回答的那样,使用OnTriggerEnter2D()你需要做几点:
1.将OnTriggerEnter2D()脚本放在空的游戏对象上,不要忘记在空对象上附加collider2D。
2.确保在collider2D选项中检查了isTrigger 3.还要确保你的播放器有标签,你可以自己制作标签,在这个例子中我将“播放器”标签添加到我的播放器游戏对象
4.示例脚本(我厌倦了并且工作了)

public class YourTriggerScript: MonoBehaviour {
void Start () {

}

// Update is called once per frame
void Update () {


}

void OnTriggerEnter2D(Collider2D collider)
{
    if (collider.GetComponent<Collider2D>().tag == "Player") 
    {
        Debug.Log ("Collided");
        // do something or you can + your point here
    }
}
}  

希望它能帮到你

答案 1 :(得分:1)

如果您的对撞机被标记为触发器,则应使用OnTriggerEnter2D()。