В моей игре на Unity3d у меня много сцен, теперь я работаю над игрой save/load. Я могу сохранить игру, но если я хочу ее загрузить, мне нужно загрузить сцену, которая мне нужна, а затем загрузить все остальные параметры.Как загрузить игру, где много сцен в Unity
Или нужно сначала загрузить все параметры, сохранить его с помощью DontDestroyOnLoad()
, а затем загрузить сцену, которая мне нужна?
public void ButtonSave()
{
PlayerPrefs.SetFloat("transform position x" + currentActiveSlot, playerTransform.position.x);
PlayerPrefs.SetInt("task 1 completed" + currentActiveSlot, isTask1Completed);
PlayerPrefs.SetInt("latestSaveSlot", latestSaveSlot);
PlayerPrefs.SetInt("act number" + currentActiveSlot, 0);
PlayerPrefs.SetInt("step number" + currentActiveSlot, 0);
PlayerPrefs.SetString("sceneName" + currentActiveSlot, SceneManager.GetActiveScene().name);
PlayerPrefs.Save();
}
public void ButtonLoad()
{
playerTransform.position = new Vector3(PlayerPrefs.GetFloat("transform position x" + currentActiveSlot),
PlayerPrefs.GetFloat("transform position y" + currentActiveSlot),
PlayerPrefs.GetFloat("transform position z" + currentActiveSlot));
isTask1Completed = PlayerPrefs.GetInt("task 1 completed" + currentActiveSlot);
//gameManager.currentActNumber = PlayerPrefs.GetInt("act number" + currentActiveSlot);
//act_2.stepNumber = PlayerPrefs.GetInt("step number" + currentActiveSlot);
//SceneManager.LoadScene(PlayerPrefs.GetString("sceneName" + currentActiveSlot));
}
Но в моем случае после загрузки сцены будет выполняться другая часть метода? – dima
После загрузки сцены вы должны поместить свой код загрузки в функцию 'Awake' или' Start'. Поэтому переместите 'PlayerPrefs.GetInt' в функцию' Awake' или 'Start'. – Programmer