首页 > 代码库 > 一台主机多开Unity程序,显示在多个显示器上

一台主机多开Unity程序,显示在多个显示器上

记录一个坑。

最近项目需要,一台主机带多台显示器,然后运行多个Unity程序。

1.连接显示器,设置为扩展模式。

2.编写代码,

using UnityEngine;public class MyDisplay : MonoBehaviour{    [SerializeField]    public int displayIndex;        //显示器编号    void Awake()    {        if (Display.displays.Length > 1)        {            Display.displays[displayIndex].Activate(0, 0, 60);        }        Screen.SetResolution(Screen.width, Screen.height, true);    }}

3.将代码挂在相机上面,依次设置显示器编号。

4.关键一步,将Camera的Target Display、Game窗口的左上角的Display,如果有Canvas ,那么把他们三个的Display都设置为对应的显示器

5.在PlayerSetting,Resolution and Presentation中的Display Resolution Dialog设置为 Disabled.

6.打包出来。

7.写一个延时启动的VBS脚本,将需要启动的程序放里面。保存,双击执行,没有错误就会执行相应的程序。

Dim delayerSet delayer = CreateObject("WScript.Shell")WScript.sleep 10000    //延时时间delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos5.exe"    //程序路径,不要有空格WScript.sleep 10000delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos4.exe"WScript.sleep 10000delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos3.exe"WScript.sleep 10000delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos2.exe"WScript.sleep 10000delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos1.exe"Set delayer = NothingWScript.quit

  

一台主机多开Unity程序,显示在多个显示器上