У меня есть игра с несколькими уровнями, у каждого уровня есть 6 сцен, игра начинается непосредственно без какой-либо сцены меню, и когда игрок открывает игру, он может продолжить с последней сцены, которую он уже достиг.
Я хочу создать некоторые элементы только при открытии игры (например, Лучший результат , Нажмите, чтобы сыграть и т. Д.), Я имею в виду, что их * нужно создать только один разначало игры (на достигнутом уровне).
Я пробовал этот код в GameManager, но он создает элементы в каждой сцене:
public GameObject PlayButton;
bool GameHasEnded = false;
public float RestartDelay = 2f;
public float NextLevelDelay = 5f;
public int level_index;
private static bool loaded = false;
private void Start()
{
if (!loaded)
{
loaded = true;
level_index = PlayerPrefs.GetInt("Last_Level");
SceneManager.LoadScene(level_index);
}
GameObject canvas = GameObject.Find("Canvas");
GameObject play = Instantiate(PlayButton, canvas.transform.position, Quaternion.identity);
play.transform.SetParent(canvas.transform, false);
}
public void CompleteLevel()
{
Invoke("NextLevel", NextLevelDelay);
}
public void EndGame()
{
if (GameHasEnded == false)
{
GameHasEnded = true;
Invoke("Restart", RestartDelay);
}
}
void NextLevel()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex +1);
level_index = SceneManager.GetActiveScene().buildIndex + 1;
PlayerPrefs.SetInt("Last_Level", level_index);
PlayerPrefs.Save();
}
void Restart()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().path);
}