Без изменения разрешения в режиме двойного дисплея - PullRequest
0 голосов
/ 17 января 2019

У меня есть приложение, которое отображает текстуру рендеринга в полноэкранном режиме на втором мониторе, если второй монитор доступен. Размер текстуры рендера установлен в 1920x1080. Я установил текстуру рендеринга в виде камеры (для целевого дисплея установлено значение «Дисплей 2») следующим образом:

[ExecuteInEditMode]
public class ScreenBlit : MonoBehaviour {
    public RenderTexture rndTexture;

    void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        if (rndTexture!=null)
            Graphics.Blit(rndTexture, destination);
    }
}

И я активирую второй дисплей так:

public class DualDisplaySetup : MonoBehaviour
    {
        void Awake()
        {
            if (Display.displays.Length > 1)
            {
                Display.displays[1].Activate();
            }
        }
    }

Когда я собираю свой проект и запускаю exe, желаемая текстура рендеринга отображается на втором мониторе, но в разрешении 1280x720. Поскольку разрешение второго монитора составляет 1920x1080, часть экрана является требуемым, а остальная часть - черным.

Так что-то вроде этого:

enter image description here

Я пытался изменить разрешение, используя следующие методы:

Display.displays[1].Activate(1920, 1080, 60);
Display.displays[1].SetParams(1920, 1080, 0, 0);
Display.displays[1].SetRenderingResolution(1920,1080);

Но это не сработало. Я попытался отобразить только вид с камеры, а не текстуры рендеринга, и результат тот же. Как я могу отобразить вид камеры на 2-м мониторе в полноэкранном режиме с разрешением 2-го монитора?

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