点击开始按钮时播放器对象自动跳跃

时间:2016-02-29 07:29:02

标签: c# android unity3d

我有一个在我启动游戏时初始化的画布,在其中我有一个带有播放和退出按钮的菜单。游戏是一个无尽的跑步者,一切都运行良好,但是当我点击Play按钮实际开始游戏时,Player对象会自动给我一个跳跃,之后,这一切正常,就像我点击Play按钮一样游戏和玩家同时也是如此。我需要在Android设备中使用它。

Player.cs脚本

...

void Start () {
    Highscore = PlayerPrefs.GetInt ("Highscore", 0);
    jumpOne = false;
    jumpTwo = false;
    canDoubleJump = false;
}
void Update() {
    for (int i = 0; i < Input.touchCount; i++){
        if (Input.GetTouch(i).phase == TouchPhase.Began && isFalling == false) {
        jumpOne = true;
        canDoubleJump = true;
        isFalling = true;
        }else if (Input.GetTouch(i).phase == TouchPhase.Began && isFalling == true && canDoubleJump == true) {
        jumpTwo = true;
        canDoubleJump = false;
        }
    }
}

void FixedUpdate() {
    transform.Translate(Vector2.right * power * Time.deltaTime);
    if (jumpOne == true) {
        GetComponent<Rigidbody2D>().AddForce(Vector2.up * jumpHeight);
        jumpOne = false;
    }
    if (jumpTwo == true) {
        GetComponent<Rigidbody2D>().AddForce(Vector2.up * jumpHeight);
        jumpTwo = false;
    }
}

void OnCollisionStay2D(Collision2D coll) {
    if (coll.gameObject.tag == "Ground") {
        isFalling = false;
        canDoubleJump = false;
    }
}

...

//(播放按钮)

public void ClickedStart() {
    MainMenu.SetActive(false);
    Time.timeScale = 1.0f;
    Playing = true;
}

已经尝试过,问题仍然存在 (Input.GetMouseButtonDown(0))

(Input.GetKeyDown(KeyCode.Space))工作正常且没有错误,但我无法在Android中跳转。

1 个答案:

答案 0 :(得分:0)

你正在使用TouchPhase.Began所以当你隐藏你的主菜单时,触摸仍然是活跃的,因此玩家跳跃,我建议你使用waitforseconds方法的协同例程,然后才能开始让玩家再次跳跃。