Unity多块屏幕显示设置以及分辨率设置

最近有一个需求需要完成的。在Unity中做一个软件驱动两块会移动的显示器进行仿真展示。
为了方便还是把所有的内容都放在一个场景里边展示,并且只使用一台电脑。这样就不要两台电脑进行通信了。
需要设置多块屏幕显示,首先只需要在场景里放置多个摄像机。
这里写图片描述
然后为每个相机选择目标显示器,也就是说这个相机渲染的画面会被放到对应的显示器上。
这里写图片描述
选好之后我们可以增加一个Game视图,来大概的看一下我们的多屏显示。点击如图所示的按钮。AddTab–>Game。
这里写图片描述
之后把Game试图放在一起我们就可以看到如下图的样子。
这里写图片描述


上面我们就完成了第一步,多块屏幕显示不同的内容。然后我们需要分别为每一块屏幕设置分辨率来达到正确的显示效果。首先我们需要关闭Unity启动时候的选择分辨率窗口。把BuildSettings/PlayerSettings/ResolutionandPresentation下的Display Resolution Dialog设置为Disabled。这样我们就可以自己进行设置了。
这里写图片描述


之后就在代码里对每一块显示器进行设置。这里有一个API是Display.displays可以给我们返回一个display的数组。我们可以打开对应的显示器,然后设置正确的分辨率。代码如下所示。我要设置屏幕分辨率为1080*1920.所以对两块屏幕分别进行了设置。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DoubleScreendisplay : MonoBehaviour
{
    public Text inforText;
    void Awake()
    {

        Display.displays[0].Activate();
        Display.displays[0].SetRenderingResolution(1080, 1920);
        inforText.text = "display1 width:" + Display.displays[0].renderingWidth + "display1 heigh:" + Display.displays[0].renderingHeight;
        Display.displays[1].Activate();
        Display.displays[1].SetRenderingResolution(1080, 1920);
        inforText.text += "display2 width:" + Display.displays[1].renderingWidth + "display2 heigh:" + Display.displays[1].renderingHeight;
    }
    private void Start()
    {
    }
}

值得注意的是,这里在编译器下运行是会报错的,可能没打包都不到所有的设备。打包之后进行测试就OK了。

  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值