繁体   English   中英

碰撞不适用于 Unity 2D 中的标签

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM