記錄一個坑。
最近項目需要,一台主機帶多台顯示器,然后運行多個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
