最近制作了一个多屏幕的项目,多屏幕指的是一个电脑主机,连接多个显示器。我这个项目使用了一个显卡连接了三个显示设备。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没有激活,或者多次激活了。

目前就遇到这两个问题,单纯这一个小项目,做个笔记记录一下问题,之后在遇到就比较轻松解决了。

Logo

苏州本地的技术开发者社区,在这里可以交流本地的好吃好玩的,可以交流技术,可以交流招聘等等,没啥限制。

更多推荐