Unity指定使用某些屏幕(多屏开发)

这篇具有很好参考价值的文章主要介绍了Unity指定使用某些屏幕(多屏开发)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在一些展示场景中我们会遇到有多个画面需要展示在多个屏幕中的时候,此时很有可能运行我们的项目的设备上还运行着其他展示程序。如果仅仅是多屏展示,那么很有可能在我们的程序打开时抢占了原本正在运行的程序的屏幕。所以我们需要程序能在多屏展示中由我们自己去选择哪些屏幕显示哪些内容,例如三个屏幕,有两个屏幕是展示我们自己的程序,另外一个展示其他程序。这种情况下很有可能是122、112或者121,所以通过修改配置文件手动控制多屏程序使用的屏幕就显得很方便了。

一、硬件准备

以三台显示器为例,将电脑连接好三台显示器并依次编号。

多屏设置教程——如何在 Windows 中使用多台显示器 - Microsoft 支持文章来源地址https://www.toymoban.com/news/detail-528950.html

二、多屏设置

1、在场景中分别新建两个Camera和两个Canvas

unity多屏选择输出哪个屏,Unity3D,unity,Powered by 金山文档

2、将两个camera和canvas的Target Display分别设置为display1和display2

unity多屏选择输出哪个屏,Unity3D,unity,Powered by 金山文档

unity多屏选择输出哪个屏,Unity3D,unity,Powered by 金山文档

3、新建一个脚本并挂载到场景中,将两个camera和canvas拖入脚本

unity多屏选择输出哪个屏,Unity3D,unity,Powered by 金山文档

4、编写代码如下


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using System;

public class ActiveDisplay : MonoBehaviour
{
    public Camera camera1;
    public Camera camera2;
    public Canvas canvas1;
    public Canvas canvas2;
    public TMP_Text display1;
    public TMP_Text display2;

    public static string[] configs;
    private void Awake()
    {
        configs = System.IO.File.ReadAllLines(Application.streamingAssetsPath + "\\config.txt");
    }
    private void Start()
    {
        string[] displayConfig = configs[0].Split(',');
        int[] ints= new int[displayConfig.Length];
        for (int i = 0; i < ints.Length; i++)
        {
            ints[i] = int.Parse(displayConfig[i]);
        }
        camera1.targetDisplay = ints[0] - 1;
        camera2.targetDisplay = ints[1] - 1;
        canvas1.targetDisplay = ints[0] - 1;
        canvas2.targetDisplay = ints[1] - 1;

        for (int i = 0; i < ints.Length; i++)
        {
            Display.displays[ints[i] - 1].Activate();
            Screen.SetResolution(Display.displays[ints[i] - 1].renderingWidth, Display.displays[ints[i] - 1].renderingHeight, true);
        }
        display1.text += "当前设备屏幕数:" + Display.displays.Length + "——屏幕1";
        display2.text += "当前设备屏幕数:" + Display.displays.Length + "——屏幕2";
    }
}

5、在StreamingAssets文件夹下新建一个txt文件config作为配置文件,config中输入"1,3"(注意逗号为英文)

unity多屏选择输出哪个屏,Unity3D,unity,Powered by 金山文档

6、在unity中运行时,Display.displays.Length永远为1。所以我们只能打包程序后才能测试配置文件指定屏幕显示的功能是否实现,最后实现效果如下:

unity多屏选择输出哪个屏,Unity3D,unity,Powered by 金山文档

到了这里,关于Unity指定使用某些屏幕(多屏开发)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 游戏开发入门ue4和unity要怎么选择?

    关于两款引擎该怎么选的问题 先从行业大环境这个角度分析: 目前市场主流是U3D,这并不意味着UE4不好。UE4的学习成本更 高且招人困难导致了大部分公司不选择用UE4去做游戏。U3D是做端游也可以,做手游格外方便,而且U3D学起来也更简单导致了市场上大部分都在用U3D开发游

    2023年04月15日
    浏览(82)
  • Unity 编译的exe程序,多屏模式下打开应用,应用自动在副屏开启,多用于大屏展示项目。

    在展厅大屏项目中我们经常会用到一个电脑显示器+大屏投影或者LED大屏显示的情况,往往是电脑显示器作为主屏控制软件画面开启,大屏作为拓展屏显示软件内容,但是在开启软件时会默认显示在主屏(电脑显示器)上,通常的做法我们需要再将窗口画面拖拽至副屏才可以显

    2024年02月08日
    浏览(47)
  • unity 双屏,多屏幕显示

    新建 scence ,新建 camera 给camera 的 targetDisplay 选择 为 display2 其中默认为display1 (如图) 然后在初始化中添加开启代码 到现在在场景中添加新的 game视图 然后选择display2 ,当前即为刚刚新建camea 的视图 ,可以新建cude 等测试 新建canvas ,在canvas中选择 targetDisplay2 ,那么当前的 ca

    2024年02月02日
    浏览(39)
  • unity屏幕截图功能

    1.在Editor文件夹新建脚本ScreenTest.cs 2.点击菜单栏的【Tools/截图】按钮 3.ctrl+r刷新下资源,图片会保存在Editor文件夹    备注: 1.运行/非运行状态下均可使用。 2.若想要自定义不同分辨率的图片可在Game窗口修改:    

    2024年02月15日
    浏览(43)
  • Unity自适应屏幕

            在移动设备上,由于设备屏幕的种类与规格繁多,为了让游戏在不同屏幕上都能正常显示,我们需要对游戏进行适配。适配的方法很多,其中一种较为常见的方法是对游戏进行自适应屏幕的处理。本篇文章将介绍如何在 Unity 中实现自适应屏幕。         首先,

    2024年02月15日
    浏览(36)
  • Unity实现屏幕淡入淡出效果

    预期效果:为实现在进入新场景时的淡入淡出效果 编译器版本:2021.3.19f1c1 使用组件:UI -- RawImage 在Unity场景切换的时候,使用RawImage制作场景的淡入淡出效果。 添加RawImage,覆盖全屏,将脚本添加上去

    2024年02月12日
    浏览(89)
  • Unity 物体固定屏幕尺寸(透视模式)

    如图所示物体远离摄像机后会被放大,靠近相机会被缩小,使得在屏幕上的大小保持不变; 导入插件后使用 gameObject.SetFixedScreenSize 即可启动固定屏幕尺寸功能

    2024年01月16日
    浏览(38)
  • Unity—屏幕截图(拍照和自拍功能)

    工作需求,做个记录。 首先在场景中添加一个自拍相机,对着自己。再用脚控制本切换。 需要注意的是设置这个 Depth 的值尽量小一点,否则切换相机时会发生视角错乱。  然后设置一个RawImage用来显示截的图片。设置如下图: 再加一个切换相机的按钮,就不展示了,普通按

    2024年02月11日
    浏览(60)
  • Unity中Shader的屏幕坐标

    Unity中Shader的屏幕坐标 屏幕归一化坐标 = 当前像素 总像素 屏幕归一化坐标 = frac{当前像素}{总像素} 屏幕归一化坐标 = 总像素 当前像素 ​ _ScreenParams 屏幕的相关参数,单位为像素。 x表示屏幕的宽度 y表示屏幕的高度 z表示1+1/屏幕宽度 w表示1+1/屏幕高度 UNITY_VPOS_TYPE screenPos

    2024年02月09日
    浏览(35)
  • Unity中Shader的屏幕抓取 GrabPass

    Unity中Shader的屏幕抓取 GrabPass 屏幕的抓取需要使用一个Pass GrabPass{} GrabPass{“NAME”} sampler2D _GrabTexture; 测试代码: 效果: 为了优化节省性能:一次抓取就存储下来渲染完,再进行下次抓取 使用:GrabPass{“NAME”} 使用这个抓取后,对应的定义名也要换成 NAME 修改后代码: 注意

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包