Как обновить экран после изменения разрешения экрана?

Мне удалось заставить мою игру изменить свое разрешение во время выполнения / во время игры (после первоначального выбора). Однако я заметил, что при переходе от, скажем, 1920x1080 к 800x600, я получаю границу по сторонам предыдущего изображения / контента, которые были там.

Например, мое меню отображается в крайнем правом углу, при уменьшении до 800x600, меню в правом нижнем углу остается, но не взаимодействует (это просто изображение), тогда как "фактическое меню" составляет несколько сотен пикселей влево.

Я спрашиваю, есть ли способ сделать так, чтобы стороны моей игры были просто черными, когда кто-то меняет разрешение? Если бы это помогло, я могу предоставить изображения того, о чем я говорю:)

2 ответа

Решил это. Моя первоначальная попытка просто "перезагрузить" экран с черным квадроциклом почему-то не удалась. Но после повторной попытки это сработало.

Создав квад (или текстуру) и установив черный цвет (или любой другой цвет, который вы хотите установить на экране) и переместив его в сторону, когда вызывается разрешение экрана, я просто преобразую положение текстуры / квадратора. чтобы покрыть холст / экран, я затем перезагружаю уровень и устанавливаю разрешение для вновь выбранного, а затем снова загружаю свое меню. Код ниже показывает это в случае, если у кого-то еще есть та же самая проблема, которую я сделал.

Кажется, это сработало нормально и может повторяться сколько угодно раз.

public void ApplyResolutionChange (GameObject menu)
{       
        GameObject blank = GameObject.Find ("BlankScreen");

        blank.transform.position = new Vector3 (0, 0, 100);
        Application.LoadLevel (0);
        Screen.SetResolution (resolutionX, resolutionY, isFullscreen);
}

Для обновления экрана используйте следующий код:

This.refresh();

Другие вопросы по тегам