[英]Collisions not working with tags in Unity 2D
我一直在尝试创建一个游戏,一旦您点击“重复”符号,您就必须返回到第一个重复符号的位置,即
一旦玩家点击“结束-重复标志”,他们将返回“开始-重复标志”,但只有一次然后他们将继续关卡,但由于某种原因,即使是刚体,游戏也不会注册符号被添加
void OnCollisionEnter(Collision collision){
if(state != State.alive || collisionsDisabled){ return; }
switch(collision.gameObject.tag){
case "Win":
print("win");
StartSucessSequence();
break;
case "Lose":
StartDeathSequence();
break;
case "StartRepeat":
print("touched");
OnTriggerEnter(other);
break;
default:
StartDeathSequence();
break;
}
}
void OnTriggerEnter(Collider other){
// if startrepeat is touched go to endrepeat
//for only once
StartRepeat = GameObject.FindWithTag("StartRepeat");
EndRepeat = GameObject.FindWithTag("EndRepeat");
for (int i = 0; i < 1; i++){
if(other.gameObject.tag == "StartRepeat") {
other.transform.position = EndRepeat.transform.position;
other.transform.rotation = EndRepeat.transform.rotation;
}
}
}
我的“Lose”标签工作正常,但我的“Win”或“StartRepeat”不行
我在想这可能是 Z 轴的问题,因为其他一切都与障碍物相似(“输”——这是红色音符)
如果还有什么需要请告诉我
首先,如果您想使用 2d 刚体,请将您的 OnCollision 和 OnTrigger 更改为 2d ,那么我建议您不要自己调用 OnTrigger 并创建另一个包含 OnTrigger 代码的方法并使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.