与玩家发生碰撞以进行拾取的对象的碰撞脚本

Collision script on an object to be collided with from the player for pickup

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

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

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

我已经尝试了几种解决方案,包括更改对撞机和刚体运动学设置的触发器,但其中 none 似乎有效。我正在使用 Unity 5,所以我想知道我是否做错了什么。任何帮助将不胜感激。

永远不会调用此函数,因为您的大小写错误。函数名首字母大写

void OnTriggerEnter(Collider c)

而不是:

void onTriggerEnter(Collider c)

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