У меня есть приложение, которое отображает текстуру рендеринга в полноэкранном режиме на втором мониторе, если второй монитор доступен. Размер текстуры рендера установлен в 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, часть экрана является требуемым, а остальная часть - черным.
Так что-то вроде этого:

Я пытался изменить разрешение, используя следующие методы:
Display.displays[1].Activate(1920, 1080, 60);
Display.displays[1].SetParams(1920, 1080, 0, 0);
Display.displays[1].SetRenderingResolution(1920,1080);
Но это не сработало. Я попытался отобразить только вид с камеры, а не текстуры рендеринга, и результат тот же. Как я могу отобразить вид камеры на 2-м мониторе в полноэкранном режиме с разрешением 2-го монитора?