1

我是团结的新手,我正在开发游戏,比如Flippy Bird如果我的玩家与另一个物体发生碰撞,那么我的玩家的一个生命将被禁用,并且对撞机从一个地方移动到另一个地方,并且有这么多对撞机而对撞机很小有点宽,所以当我的玩家接触那个对撞机时,它的三个生命在很短的时间内被一一禁用。

我明白当我的玩家一次又一次地触摸同一个物体时。所以玩家所有的生命同时被切断,但我不知道如何解决这个问题。

碰撞代码如下。

void OnTriggerEnter(Collider C){
    if(C.gameObject.name == "DownCollider" || C.gameObject.name == "Cylinder"){
        if(Life1.activeInHierarchy){
            Life1.SetActive(false);
        }
        else if(Life2.activeInHierarchy){
            Life2.SetActive(false);
        }
        else if(Life3.activeInHierarchy){
            Life3.SetActive(false);

        }
    }
4

1 回答 1

1

我只是试试这个,它对我有用..

    void Update () {

        Vector3 pos = transform.position;
        pos.y -= 0.03f;
        transform.localRotation = Quaternion.Euler(60,270,90);
        transform.position = pos;
        if(Input.GetMouseButton(0)){
            transform.localRotation = Quaternion.Euler(72,90,-90);
            pos.y += 0.1f;
            transform.position = pos;
        }
        LifeT -= Time.deltaTime;

        if(LifeT <= 0){
            LifeTime = true;
            LifeT = 5f;
        }
    }
    void OnTriggerEnter(Collider C){
        if(C.gameObject.name == "DownCollider" || C.gameObject.name == "Cylinder"){
            print(LifeTime);
            if(Life1.activeInHierarchy && LifeTime){
                Life1.SetActive(false);
                LifeTime = false;
            }
            else if(Life2.activeInHierarchy && LifeTime){
                Life2.SetActive(false);
                LifeTime = false;
            }
            else if(Life3.activeInHierarchy && LifeTime){
                Life3.SetActive(false);
                LifeTime = false;
            }
        }

感谢KennethLJJ的帮助。

问候,

达梅什

于 2014-09-11T09:17:12.830 回答