Как обновить экран после изменения разрешения экрана?
Мне удалось заставить мою игру изменить свое разрешение во время выполнения / во время игры (после первоначального выбора). Однако я заметил, что при переходе от, скажем, 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();