Найдите «номер» сцены, в которой находится игрок, чтобы сохранить ее в PlayerPref Unity - PullRequest
0 голосов
/ 27 октября 2019

Я работаю над 2D Pixel Platformer RPG, мне нужно разработать механизм сохранения и загрузки в нем. В игре есть несколько сцен (и их будет много), вопрос в том, как сохранить номер сцены, в которой находится игрок, чтобы он выходил и перезагружал игру, находясь в той же сцене. Как я могу реализовать это в C # Unity. (пожалуйста, будьте ясны, поскольку я несколько новичок).

1 Ответ

2 голосов
/ 27 октября 2019

Хорошо, есть несколько вещей, которые необходимо сделать для достижения этой цели:

Сначала в первой сцене вашей сборки - создайте пустой GameObject, назовите его «SceneManager».

Затем создайте новый тег «SceneManager» и добавьте его в GameObject «SceneManager»

Наконец, добавьте скрипт «SceneManager» в GameObject «SceneManager»:

using System.Collections; 
using UnityEngine; 
using UnityEngine.SceneManagement;
public class SceneManager : MonoBehaviour 
{

    void Awake()
    {
        DontDestroyOnLoad(gameObject);
    }
    public void SaveScene()
    {
        int activeScene = SceneManager.GetActiveScene().buildIndex;
        PlayerPrefs.SetInt("ActiveScene", activeScene);
    }
    public void LoadScene()
    {
        int activeScene = PlayerPrefs.GetInt("ActiveScene");
        SceneManager.LoadScene(activeScene);
    }
}

Затем вы можете загружать / сохранять сцены, используя этот скрипт:

using UnityEngine;
public class UsageScript: MonoBehaviour { 
    private SceneManager SceneManager;
    void Awake ()
    {
        sceneManager = GameObject.FindGameObjectWithTag("SceneManager").GetComponent<SceneManager>();
    }

    void UsageManager()
    {
        sceneManager.SaveScene();

        sceneManager.LoadScene();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...