Перезапуск сцены с помощью ключа в Unity

#c# #visual-studio #unity3d #restart

#c# #visual-studio #unity3d #перезапуск

Вопрос:

Я разрабатываю университетское упражнение в Unity2D, где мне нужно перезапустить мою игру, нажав клавишу R. Игра — это шар, который перемещается, когда вы нажимаете пробел. Я добавил некоторый код, но когда я нажимаю R, ничего не происходит.

Мой код:

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class RestartGame : MonoBehaviour
{
    public void restart()
    {
        if (Input.GetKeyDown(KeyCode.R))
        {
            SceneManager.LoadSceneAsync(
                SceneManager.GetActiveScene().buildIndex);
        }
    }
}
  

Я видел на форуме, что мне пришлось создать пустой объект и добавить туда скрипт, чтобы он заработал. Но по какой-то причине ничего не произойдет.

Помощь очень ценится.

Ответ №1:

Если вы хотите проверить User Input , вам нужно сделать это в Update() методе, предоставляемом Unity.

Пример:

 private void Update() {
    if (Input.GetKeyDown(KeyCode.R)) {
        SceneManager.LoadSceneAsync(
            SceneManager.GetActiveScene().buildIndex);
    }
}
  

Если вы не используете метод обновления или метод, который вызывается каждый кадр (например OnTriggerStay() ), вы не сможете определить, действительно ли пользователь нажал клавишу.