2015-02-06 3 views
1

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

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

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

ответ

2

Решил. По какой-то причине моя первоначальная попытка просто «сбросить» экран с черным квадратом не удалась. Но после попытки снова это, казалось, сработало.

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

Это, кажется, сработало хорошо и может повторяться, однако, много раз, когда пользователь хочет.

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); 
} 
-1

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

This.refresh();

Смежные вопросы