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了。

评论 9 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

StarJourney

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值