与玩家相撞的对象上的碰撞脚本以进行拾取

时间:2015-03-28 21:07:20

标签: c# unity3d collision

我正在尝试编写一个脚本,允许玩家走进一包弹药(或健康)并从中获得一些东西。我正在努力解决这个问题的实际碰撞部分,因为无论我做什么,我都无法让它发挥作用。我目前在我的弹药包对象上有这个脚本。

void onTriggerEnter(Collider collision) {
    if (collision.gameObject.tag == "Player") 
    {
        Debug.Log ("Collided");
    }
}

我的弹药包对象上有一个对撞机(目前是胶囊,将是最终产品的盒子),启用了“触发器”。 我的玩家也有一个胶囊对撞机(非触发器)和一个重力启用的刚体,其他一切都是默认的。它也被标记为“播放器”。当我的播放器进入弹药包时,没有打印信息。

我尝试了几种涉及改变碰撞器和刚体运动设置的触发器的解决方案,但它们似乎都没有用。我正在使用Unity 5,所以我想知道我是否做错了什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

由于您的大小写错误,因此永远不会调用此函数。大写函数名的第一个字母。

void OnTriggerEnter(Collider c)

而不是:

void onTriggerEnter(Collider c)

注意:始终使用CompareTag()代替==来比较字符串。两者都有效,但CompareTag是GC友好的。