Standalone Player Settings
Apple Mac

Multi-display

Use Multi-display to display up to 8 different cameras 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.

Note that Multi-display runs in stand alone mode only, and the feature is currently supported on Windows, Mac and Linux.

Previewing Muti-display in your Project

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: Camera Inspector….)

Fig 1: Camera Inspector with Target Display option
Fig 1: Camera Inspector with Target Display option

You can then preview each display in GameView, using the drop down Display menu in the top left hand corner of the view. (See Fig 2: Display preview…)

Fig 2: Display preview in the top left corner of GameView
Fig 2: Display preview in the top left corner of GameView

Activating Multi-display

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. Note that you need to explicitly activate each additional display, and, once activated, you cannot deactivate them.

Startup is the best time to activate additional displays; a good way to do this is to attach a script component to a gameObject such as Main Camera in the startup scene. Make sure you call Display.Activate once only during the startup, ideally in a bootstrap scene.

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()
    {

    }
}

API Support

The following UnityEngine.Display API functions are supported.

    public void Activate()

Activate a specific display on the current monitor width and height. This call must be made during startup once. It can be called from a user script attached to a Camera or dummy gameObject in a startup scene.

public void Activate(int width, int height, int refreshRate)

Windows only: Activate a specific display on custom monitor width and height.

Controlling Monitor Display Positions

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 your application displays without any sorting, start your application from the command line and use the following command line flag:

 -multidisplay
 
Standalone Player Settings
Apple Mac