记录一个坑。
最近项目需要,一台主机带多台显示器,然后运行多个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
时间: 2024-11-11 04:20:59