时间:2022-10-22 13:57:53 | 栏目:.NET代码 | 点击:次
最近制作了一个多屏幕的项目,多屏幕指的是一个电脑主机,连接多个显示器。我这个项目使用了一个显卡连接了三个显示设备。Unity UGUI提供Canvas画布,在画布上有一个TargetDisplay的解决解决方案。
Canvas结合Camera就可以实现多屏显示。
多屏还需要一个Display.displays[1].Activate屏幕激活。
public class DisplayScreen : MonoBehaviour { void Awake() { for (int i = 0; i < Display.displays.Length; i++) { Display.displays[i].Activate(); Screen.SetResolution(Display.displays[i].renderingWidth, Display.displays[i].renderingHeight, true); } } }
注意1、你有两个或者多个屏幕你就需要添加多个canvas画布,canvas有一个SortOrder的属性深度,前后的意思,数值越大越靠前,如果你添加了多个层,display场景一中按钮无法点击可能就是camvas画布层不对设置一下。
2、一定不要忘记Display.displays[1].Activate,你可以把它放到任意一个物体上,如果你得屏幕数是固定你可以写死,如果这里出现问题就会出现其他屏幕黑屏无法显示。开始以为黑屏和分辨率有关系还是这个Activte没有激活,或者多次激活了。
目前就遇到这两个问题,单纯这一个小项目,做个笔记记录一下问题,之后在遇到就比较轻松解决了。