0
我有一個畫布,當我啓動遊戲時它已經初始化,並且裏面有一個帶有播放和退出按鈕的菜單。遊戲是一個無盡的跑步者,一切工作正常,但是當我點擊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中跳轉運行。
Lumb,初學者不應該使用協程。只需使用簡單的「Invoke」調用即可。 – Fattie
好吧,然後嘗試這個if語句並將所有的觸摸代碼放在裏面:if(!MainMenu.isactiveSelf){},看看是否有幫助 – LumbusterTick