为什么我的球员生命立即消失?

时间:2014-09-11 08:01:45

标签: unity3d collision unityscript flappy-bird-clone

我是团结的新手,我正在开发像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);

        }
    }

1 个答案:

答案 0 :(得分: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的帮助。

此致

Dharmesh