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