在Unity中,我的代码如何检测何时触发特定的不同对象?
我已经尝试了几件事,例如:
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public GameObject DualCannon_PU;
void OnTriggerEnter2D (Collider2D coll) {
if (coll.name == "DualCannon_PU") {
Debug.Log ("DualCannon PowerUp");
}
}
}
但它不起作用:它不会触发任何东西,而且它可能会触发任何事情。" DualCannon PowerUp"没有出现在控制台中。
在玩家游戏对象"触发"检查并且我的powerUp(DualCannon_PU)"是触发器"未经检查。
我注意到我有2"播放器控制器(脚本)",我删除了第一个,但问题仍然存在......
我想要的一个例子:
我有4个游戏对象并且都有2D碰撞器
我想要的条件:
health -= laser.GetDamage();
health = health + 10;
isDualCannon = true
答案 0 :(得分:1)
首先你需要:
点击“Is触发器”
确保你的碰撞器位于gameObject的边界(编辑碰撞并拖动,直到绿线在角落里)
如果错误仍然包含对答案的评论,我会看到我能做什么
它与我的工作正常:
这家伙会打 这家伙 使用此代码:
void OnTriggerEnter2D(Collider2D col){
Debug.Log ("notset = " + col.name);
}