Unity 基础 之 使用 Display 简单的实现 多屏幕显示的效果

Unity 基础 之 使用 Display 简单的实现 多屏幕显示的效果

 

目录

Unity 基础 之 使用 Display 简单的实现 多屏幕显示的效果

一、简单介绍

二、实现原理

三、注意事项

四、效果预览

五、实现步骤

六、关键代码


 

一、简单介绍

Unity中的一些基础知识点。

本节简单整理使用 Display 实现多屏幕显示的效果,如果你有新的方式也可以留言,多谢。

 

二、实现原理

官网介绍:https://docs.unity3d.com/2019.3/Documentation/Manual/MultiDisplay.html

Multi-display

You can use multi-display to display up to eight different Camera views of your application on up to eight different monitors at the same time. You can use this for setups such as PC games, arcade game machines, or public display installations.

Unity supports multi-display on:

  • Standalone platforms (Windows, macOS X, and Linux)

  • Android (OpenGL ES only)

  • iOS

Activating multi-display support

Unity’s default display mode is one monitor only. When you run your application, you need use Display.Activate() to explicitly activate additional displays. Once you activate a display, you can’t deactivate it.

The best time to activate additional displays is when your application creates a new Scene
. A good way to do this is to attach a script component to the default Camera. Make sure you call Display.Activate() only once during startup. As a best practice, you might find it helpful to create a small initial Scene to test your script.

 

多屏显示

您可以使用多显示,以显示多达8个不同的摄像头视图,您的应用程序在多达8个不同的监视器同时。您可以将其用于PC游戏、街机游戏机或公共显示安装等设置。

Unity支持多显示:

  • 独立平台(Windows、macOS X和Linux)

  • Android(仅OpenGL ES)

  • iOS

激活多头显示支持

Unity的默认显示模式是一个监视器。在运行应用程序时,需要使用Display.Activate()来显式地激活其他的显示。一旦你激活了显示屏,你就不能让它失效了。

激活附加显示的最佳时机是当你的应用程序创建一个新的场景。

一个很好的方法是将一个脚本组件附加到默认摄像机上。确保在启动过程中只调用一次Display.Activate()。作为一种最佳实践,您可能会发现创建一个小型的初始场景来测试脚本是很有帮助的。

 

三、注意事项

1、注意环境要连接两个屏幕

2、且使用代码激活对应屏幕

 

四、效果预览

 

五、实现步骤

1、打开 Unity ,构建一个新工程

 

2、在场景中,添加添加camera ,Canvas Text, Cube 作为观察显示使用

 

3、其中 Display2_Main Camera 设置 Target Display 为 Display 2,Display1_Camera 设置 Target Display 为 Display 1

 

4、Display1_Canvas 设置 Target Display 为 Display 1

 

5、Display2_Main Camera 和 Display1_Camera 的位置观察 cube 的位置不一样,便于区分效果

 

6、切换 Display ,就会看到不同效果

 

7、编写脚本,实现激活使用多屏显示

 

8、脚本挂入场景中,并对应赋值

 

9、程序,打包,连接两个屏幕,效果如上

 

六、关键代码

using UnityEngine;
using UnityEngine.UI;

public class DisplayScreen : MonoBehaviour
{
    public Text intfoText;

    void Awake()
    {
        //MultScreen();
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            MultScreen();
        }
    }

    void MultScreen() {

        Debug.Log(GetType()+ "/MultScreen()/ Display.displays.Length = " + Display.displays.Length);
        intfoText.text = "当前获得屏幕数量为:" + Display.displays.Length;
        for (int i = 0; i < Display.displays.Length; i++)
        {
            Display.displays[i].Activate();
            Screen.SetResolution(Display.displays[i].renderingWidth, Display.displays[i].renderingHeight, true);
        }
    }
}

 

猜你喜欢

转载自blog.csdn.net/u014361280/article/details/115480881#comments_21904859