Unity 多屏(分屏)显示,Muti_Display
最近项目有个需求,主要用于在展厅的展示游戏。

比如,在一个很大的展厅,很大的显示屏挂在墙上,我们不可能通过操作墙上那块显示器上的按钮来控制游戏。
这时候有一个小的显示器(比如一个控制器或者一个手机)

我们要做的是:挂在墙上的大显示器用来展示3D游戏场景,而所有的UI控制则全部显示在“控制器“上。

这在Unity里面应该怎样实现:
1.先看Unity官方文档
https://docs. unity3d.com/Manual/MultiDisplay.html
有这么一个Muti-Display
Muti-display允许最多8geCamera视图,最多8个不同的显示器显示。可用于PC端游戏,拱屏设备(跟环屏设备一个意思,我猜多),和一些公用的展示设备。其实就一个意思:
也就是只支持PC端。
2.接下来就是一些设置
Set each  Camera  to display to a specific monitor, using its  Inspector . You can assign between 1 and 8 display monitors via the Target Display  option (see  Fig. 1 ). 
对每一个相机进行单独设置显示在指定的显示器上,通过Camera的属性Inspector窗口,你可以通过 Target Display下拉列表来指定1到8的任意显示器。
 
You can then preview each display in the Game View, using the drop-down Display  menu in the top left-hand corner of the view (see  Fig. 2 ).
 
通过Game视图左上角的Display1下来菜单可以选择你要预览的视图。

note:如果你想要同时预览两个Game视图,在任意标签 右键->Add Tap ->Game,在新的Game视图设置Display2。

3.最后就是激活了。
 
The default display is one monitor, so when you run your application, you need to explicitly activate any additional displays via scripting, using  Display.Activate . You need to explicitly activate each additional display and, once activated, you cannot deactivate them.
默认情况下,只有一个显示器,所以当你运行程序的时候,你需要明确地激活额外的显示器,可以通过代码 Display.Activate来实现,需要注意的是,只需要激活一次,一旦激活了,就不能关闭激活状态。

4.请看官方代码。很简单,这里说一点需要注意的就是 Display.displays.Length这个属性,在Editor下,无论你的主机连接了多少个显示器,Display.displays.Length的值都是1。只有打包运行的时候,返回值才是真的连接的显示器个数(当然如果你想测试一下不连显示器看看返回值是多少,你试试,如果有结果记得回来评论,哈哈哈)

简单介绍这么多,说说怎么操作吧。我的Sample是 左边显示器显示一个button,点击button在右边显示器上创建一个Cube.
1.新建项目,新建Scene,默认的即可。在MainCamera的属性窗口 找到TargetDisplay,默认值是Display1,那就让它默认值好了。这个MainCamera主要是用于渲染3D场景的,也就是本Sample中的 “右边显示器”。
2.新建一个Camera 命名为UICamera,在属性窗口,Camera下需要设置两个地方:a.CullingMask,不用多解释了,这里只渲染UI界面,b.TargetDisplay 设置为Display2.

3.创建Button按钮,我这里用的UGUI(新版本的UGUI个人觉得已经很完美了,果断抛弃了NGUI,要做图集,麻烦),UGUI自然会有一个Canvas,是的,Canvas下也有一个TargetDisplay属性,将它设置为Display2,因为我只想让UI在“左边显示器”上显示。
到目前,一切基本就绪了,这时候在Game视图的左上角切换Display1和Display2会看到Display2只有一个Button,切换到Display1时什么都没有(因为MainCamera渲染的场景中什么都没有)。
4.代码。
首先是激活显示器,像上边翻译的一样,然后是点击按钮创建Cube,都是很简单的代码。

using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
Debug.Log("displays connected: " + Display.displays.Length);
// Display.displays[0] 是主显示器, 默认显示并始终在主显示器上显示.        
// 检查其他显示器是否可用并激活.        
if (Display.displays.Length > 1)
Display.displays[1].Activate();
if (Display.displays.Length > 2)
Display.displays[2].Activate();
}
// Update is called once per frame
void Update () {
}
}

最后就是打包发布了。
看下效果吧
按钮在左边显示器
 

转载于:https://www.cnblogs.com/feiqianlove/p/6738936.html

Unity 多屏(分屏)显示,Muti_Display相关推荐

  1. Unity中Oculus分屏相机和普通相机一键切换

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50462157 作者:car ...

  2. 可以分屏吗_LED透明屏分屏是怎么一回事?

    商店门前的大块橱窗玻璃,现在有很多商家都是直接做成一整块的LED显示屏,用来展示自己的产品以及品牌信息,而大型的商业幕墙上面的超大一面的LED屏幕已经可以达到影院级别的高清程度,这些LED显示屏都是一 ...

  3. 解决微雪2.13寸墨水屏分屏问题(1)

    遇到的问题 1.首先微雪给的官方教程为uno的版本,但是我手头只有2560的,那当然无法驱动 解决:如果使用2560驱动 1.管脚的接法 VCC->5V GND->GND BUSY-> ...

  4. 小米android n 分屏,分屏大师

    应用介绍 分屏大师App火爆上线啦! 分屏大师app满足智能化场景应用操作 分屏大师app拥有大家需要的分屏功能,在游戏或者其他操作的时候可以更好的将屏幕分为不同的界面,这样就可以实现大家在一个屏幕上 ...

  5. android盒子分屏,分屏智投投屏神器免费版 1.7.4 安卓免费版

    分屏智投app能够让用户们快速完成设备投屏功能,多个屏幕管理让大家快速连电视/投影仪等等.更加方便的投屏管理功能,设置窗口分辨率更大化的提高投屏效率,能够同时投屏多个窗口! 分屏智投介绍 多台手机可通 ...

  6. Android折叠屏开发学习(三)---使用MotionLayout实现折叠屏分屏效果

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为6259字,预计阅读11分钟 前言 今天是折叠屏开发的第三篇,前面已经介绍了铰链的角度监听和Jetpack Window实现监听 ...

  7. Unity--实现屏幕多屏分屏效果

    最近在做一个项目用到了多屏效果,研究了一下分享一下,实现效果如下 主要用到摄像机的 ViewportRect属性 Camera属性 Clear Flags:很容易理解,清除一些元素,最常用的可能就是默 ...

  8. 如何隐藏浏览器的菜单栏、地址栏,浏览器窗口全屏,浏览器全屏分屏

    以chrome谷歌浏览器为例,有两种方法,一种是命令行方式,一种是图形化的方式: 一.用cmd进入谷歌浏览器安装目录,执行:Chrome.exe --app=http://www.baidu.com/ ...

  9. Unity实现多屏分屏效果(新手向)

    Unity版本2021.1.13f1c1        效果: 首先在Hierarchy里要操作的Scene里添加3个Camera,操作4个Camera的Inspector里Camera组件 Insp ...

  10. xrandr 只有一个显示屏_给大家介绍一种命令行模式下的多屏分屏工具xrandr

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 archlinux WIKI上的介绍是这样的: "xrandr" 是一款官方的 RandR Wikipedia:X Window Sy ...

最新文章

  1. 拾人牙慧篇之———QQ微信的第三方登录实现
  2. 每日一皮:当你感觉上升瓶颈的时候,不妨换个环境...
  3. OSChina 周二乱弹 ——clouddyy快来! 这个姑娘好萌你要不?
  4. jquery学习手记(7)Data_utility_index方法
  5. 一步步学习SPD2010--词汇表
  6. 形态学图像处理(二)
  7. 沟通科技:将引领接入革命第三次浪潮
  8. 小宝机器人怎么开机_是我低估了网友的脑洞 扫地机器人充电“事故现场”
  9. springBoot中shiro与Redis整合的配置文件
  10. js 程序执行与顺序实现详解
  11. RS编码过程通俗理解
  12. pip install numpy 安装numpy失败
  13. java se runtime environment 6.0_Java SE Runtime Environment v6.0 Update 16
  14. 题目推荐—POJ数学题目
  15. 中国工商银行计算机专业笔试内容,中国工商银行的笔试一般考什么内容?
  16. 蜜瓜文案:水果蜜瓜文案短句,水果店蜜瓜发朋友圈文案
  17. 华为路由器RIP经典案例
  18. 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》
  19. 研发二部二组-问题点归纳
  20. CreateJS奥运五环动画

热门文章

  1. AI能让杨超越跳舞?背后原理大揭秘!
  2. 使用iSpring QuizMaker创建有效的填空测验,远程教学简单创建作业!
  3. Nginx:nginx优化之--慢连接攻击应对
  4. 用自己照的图片设计海报
  5. mac安装ipd包,示例为金铲铲之战(playcover)
  6. 朱敏:40岁创业如何成就绝代明星?(六)
  7. JS获取div高度的方法
  8. 基于java基于微服务架构的在线音乐平台计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  9. JSP音乐歌曲网站JSP音乐管理系统JSP音乐播放网站JSP在线音乐播放网站
  10. 2021年全球车辆到电网(V2G)收入大约33百万美元,预计2028年达到2008.7百万美元,2022至2028期间,年复合增长率CAGR为 79.9%