У меня есть холст, который инициализируется, когда я запускаю игру, и внутри него у меня есть меню с кнопкой воспроизведения и выхода. Игра представляет собой бесконечный раннер, и все работает нормально, но когда я нажимаю кнопку «Воспроизвести», чтобы начать игру, объект «Игрок» автоматически дает мне один прыжок, после этого все нормально, это похоже на то, когда я нажимаю кнопку «Воспроизвести». игра и игрок тоже одновременно. Мне нужно, чтобы это работало на устройстве 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.