我正在使用 unity 5 c#,并且我有一个带有 2 个触发对撞机的游戏对象,其中一个位于不同的位置。我需要能够为他们使用 OnTriggerStay2D 和 OnTriggerEnter2D 但我需要找到正在输入的触发器。现在,如果我输入第一个(多边形)触发器,OnTriggerEnter 会为第二个(框)激活。我怎样才能区分这两个对撞机???
public void OnTriggerEnter2D(Collider2D other) //2nd collider trigger
{
if (other.tag == "Player") {
Found = true; //if the player is in shooting range
Idle = false;
}
}
public void OnTriggerStay2D(Collider2D other) //1st collider trigger
{
if (Found != true) {
if (other.tag == "Player") {
Shield = true;
Idle = false;
}
}
}
public void OnTriggerExit2D(Collider2D other) //2nd collider trigger
{
if (other.tag == "Player") {
Found = false;
Shield = false;
Shooting = false;
Idle = true;
}
}
我尝试将第一个触发器设为 public void OnTriggerStay2D(PolygonCollider2D other) 但它说“此消息参数必须是类型:Collider2D 该消息将被忽略。”
我想要做的是在游戏对象前面有一个多边形触发器,并且在游戏对象附近有一个不同的框触发器,所以当你靠近游戏对象时,你进入第一个触发器,它会抬起它的盾牌,但是当你靠近它时(在它的射击范围内)它会放下它的盾牌并开始射击你。