マルチディスプレイを使って同時に最大 8 つのモニター上にアプリケーションの異なるカメラビューを最大 8 つまで表示できます。PC ゲーム、アーケードゲーム機、パブリックディスプレイなどの設定に使用できます。
Unity は以下でマルチディスプレイをサポートしています。
一部の機能は、一部のプラットフォームでのみ動作します。互換性の詳細については、Display、Screen、FullScreenMode の各 API を参照してください。
Unity のデフォルトのディスプレイモードは 1 つのモニターのみです。アプリケーションを実行するときは、Display.Activate()
を使用して明示的に追加のディスプレイをアクティブにする必要があります。いったんディスプレイをアクティブにすると、非アクティブにすることはできません。
追加のディスプレイをアクティブにする最適なタイミングは、アプリケーションが新しいシーンを作成するときです。これを行うには、スクリプトコンポーネントをデフォルトのカメラにアタッチすることです。起動時に Display.Activate()
を 1 回だけ呼び出しようにしてください。スクリプトをテストするための小さな初期シーンを作成すると便利な場合があります。
using UnityEngine;
using System.Collections;
public class ActivateAllDisplays : MonoBehaviour
{
void Start ()
{
Debug.Log ("displays connected: " + Display.displays.Length);
// Display.displays[0] は主要なデフォルトのディスプレイで、常にオンです。ですから、インデックス 1 から始まります。
// その他のディスプレイが使用可能かを確認し、それぞれをアクティブにします。
for (int i = 1; i < Display.displays.Length; i++)
{
Display.displays[i].Activate();
}
}
void Update()
{
}
}
さまざまなカメラビューをプレビューするには、以下の手順を実行します。
ゲームビューにいることを確認します。
左上隅の Display メニューからプレビューするディスプレイを選択します。
Unity は以下の UnityEngine.Display API メソッドをサポートします。
メソッド | 説明 |
---|---|
public void Activate() |
特定のモニターを、現在のモニターの幅と高さでアクティベートします。この呼出しは新しいシーンを開始するときに、一度だけ行われる必要があります。これは、新しいシーン内の Camera やダミーの GameObject に添付されたユーザースクリプトから呼び出すことが可能です。 |
public void Activate(int width, int height, int refreshRate) |
Windows のみ。カスタムの幅と高さの特定のディスプレイをアクティブにします。Linux と macOS X では、補助的なディスプレイは可能な場合は常にディスプレイの現在の解像度を使用します。 |
デフォルトでは、ユーザーのコンピューターは、コンピューターの X, Y の仮想デスクトップに基づいてディスプレイモニターの相対的な位置をソートします。アプリケーションがソートなしで表示するようにこれをオーバーライドするには、コマンドラインからアプリケーションを起動して、-multidisplay
コマンドラインフラグを使用してください。