记录一个坑。

最近项目需要,一台主机带多台显示器,然后运行多个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 delayer
Set delayer = CreateObject("WScript.Shell")
WScript.sleep 10000    //延时时间
delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos5.exe"    //程序路径,不要有空格
WScript.sleep 10000
delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos4.exe"
WScript.sleep 10000
delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos3.exe"
WScript.sleep 10000
delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos2.exe"
WScript.sleep 10000
delayer.Run "C:\Users\AhrenLi\Desktop\ShowPhotos1.exe"
Set delayer = Nothing
WScript.quit

  

posted on 2016-09-21 12:00  Ahren_Li  阅读(2637)  评论(0编辑  收藏  举报