我试图写一个脚本,让玩家走进一包弹药(或健康),并从中获得一些东西。我正在与实际碰撞的部分斗争,因为无论我做什么,我似乎无法使它工作。目前,我的弹药包对象上有这个脚本。
void onTriggerEnter(Collider collision) {
if (collision.gameObject.tag == "Player")
{
Debug.Log ("Collided");
}
}我的弹药包对象有一个对撞机(目前的胶囊,将为最终产品的盒子),有“是触发”启用。我的玩家也有一个太空舱对撞机(非触发)和一个有重力的刚体,其他的都是默认的。它也被标记为"Player“。当我的玩家走进弹药包时,没有信息打印。
我尝试过几种解决方案,包括在对撞机和刚体运动设置上改变触发器,但它们似乎都不起作用。我正在使用Unity5,所以我想知道我是否做错了什么。任何帮助都将不胜感激。
发布于 2015-03-29 10:36:38
这个函数永远不会被调用,因为你的资本化是错误的。将函数名的第一个字母大写。
void OnTriggerEnter(Collider c)而不是:
void onTriggerEnter(Collider c)注意:总是使用CompareTag()而不是==来比较字符串。两者都能工作,但CompareTag是GC友好的。
https://stackoverflow.com/questions/29322640
复制相似问题