Multi-display allows you to display up to 8 different camera views of your application on up to 8 different monitors at the same time. You could use this for PC games, arcade game machines and simple installations for public display.
Multi-display only runs in standalone mode, and is supported on Windows, Mac OS X and Linux.
To see the different monitor displays:
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).
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).
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.
The best time to activate additional displays is upon creating 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 the startup. You may find it helpful to create a small initial scene to test it.
Example script
using UnityEngine;
using System.Collections;
public class DisplayScript : MonoBehaviour
{
// Use this for initialization
void Start()
{
Debug.Log("displays connected: " + Display.displays.Length);
// Display.displays[0] is the primary, default display and is always ON.
// Check if additional displays are available and activate each.
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()
{
}
}
The following UnityEngine.Display API functions are supported:
public void Activate()
This activates a specific display on the current monitor’s width and height. This call must be made once upon starting a new Scene. It can be called from a user script attached to a Camera or dummy GameObject in a new scene.
public void Activate(int width, int height, int refreshRate)
Windows only: This activates a specific display on a custom monitor’s width and height.
By default, your user’s computer sorts the relative positions of its display monitors based on its X, Y virtual desktop. To override this so that your application displays without any sorting, start your application from the command line and use the command line flag:
-multidisplay
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.