Как вызвать метод Restart в Unity? - PullRequest
0 голосов
/ 23 октября 2019

Я писал сценарий кода для простой 2d игры, и все шло хорошо, пока я не попытался вызвать метод перезапуска для условия «GAME OVER». На самом деле Unity печатает ошибку только в методе Restart

До сих пор я пытался изменить имя метода и набрал глобальный класс перед методом. Тем не менее, он по-прежнему показывает «» перед методом Restart ().

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

  public class GameManager : MonoBehaviour
  {

bool GameHasEnded = false;

public float restartDelay = 1f;
public void GameOver()
  {
   if (GameHasEnded == false)
   {
        GameHasEnded = true; 
        Debug.Log("GAME OVER");
        invoke("Restart", "restartDelay");
   }
   } 
   }

 void Restart() 
  {
      SceneManager.LoadScene(SceneManager.GetActiveScene().name);    
  }

В Unity отображается следующая ошибка: Assets / Scripts / GameManager.cs (22,8): ошибка CS0116: пространство имен не может напрямую содержать элементы, такие как поля или методы

1 Ответ

0 голосов
/ 23 октября 2019

1) У вас есть опечатка invoke должна быть заглавной Invoke

2) Вторым параметром функции является не строка, а число с плавающей точкой, вы заключаете переменную в кавычкиделая его строкой.

Должно быть

Invoke("Restart", restartDelay);

3) Как уже упоминалось в BugFinder, ваша функция находится вне класса, что противоречит правилам C # и возвращает ее обратно в класс,

public class GameManager : MonoBehaviour
{

    bool GameHasEnded = false;

    public float restartDelay = 1f;
    public void GameOver()
    {
        if (GameHasEnded == false)
        {
            GameHasEnded = true;
            Debug.Log("GAME OVER");
            Invoke("Restart", restartDelay);
        }
    }
    void Restart()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...