Попытка загрузить сцену с таким же положением камеры, как и при выключенной - PullRequest
0 голосов
/ 14 ноября 2018

Так что, в принципе, подумайте, Марио, у меня есть карта мира.Игрок входит в уровень, а затем, когда игрок возвращается на Карту, я хочу, чтобы он загрузил положение камеры, на которой игрок остановился в последний раз.У меня возникают проблемы с этим, и он продолжает сбрасываться обратно в исходное положение камеры.

Вот что я пробовал до сих пор:

У меня есть класс WorldManager со следующим кодом:

    private void Start()
{
    highestLevelUnlocked = PlayerPrefsManager.GetHighestLevelUnlocked();
    if (highestLevelUnlocked > 0)
    {
        rectTransform.offsetMin = new Vector2(PlayerPrefsManager.GetLastLevelViewedLeft(), rectTransform.offsetMin.x);
        rectTransform.offsetMax = new Vector2(PlayerPrefsManager.GetLastLevelViewedRight(), rectTransform.offsetMax.x);
    }
    else
    {
        rectTransform.offsetMin = new Vector2(0, 0);
        rectTransform.offsetMax = new Vector2(0, 0);
    }
}

// Sets the camera coordinates.
public void SetCameraCoordinates()
{
    PlayerPrefsManager.SetLastLevelViewed(Mathf.RoundToInt(rectTransform.offsetMin.x), Mathf.RoundToInt(rectTransform.offsetMax.x));
}

Я уверен, что делаю что-то совершенно неправильно, но я не могу понять это и надеялся на некоторое понимание.

PlayerPrefsManager статичен и удерживает данные игрока между сценами.

Спасибо!

Редактировать: Я использую вид прокрутки для игрока, чтобы прокрутить карту с помощью мыши / больших пальцев.

1 Ответ

0 голосов
/ 14 ноября 2018

Спасибо всем, кто смотрел на это. Я смог решить проблему с помощью следующего:

    private void Start()
{
    lastLevelViewed = PlayerPrefsManager.GetLastLevelViewed();
    if(lastLevelViewed > 0)
    {
        scrollRect.horizontalScrollbar.value = PlayerPrefsManager.GetLastLevelViewed();
    }
    else
    {
        scrollRect.horizontalScrollbar.value = 0;
    }
}

// Sets the camera coordinates.
public void SetCameraCoordinates()
{
    PlayerPrefsManager.SetLastLevelViewed(scrollRect.horizontalScrollbar.value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...