やりたいこと
- Unityプロジェクトをマルチディスプレイで実行したい
- モニターn枚に対してdisplayで指定されている内容を映したい
- cameraとdisplayの紐付けについてはこちらが参考になります
【Unity】Unityでマルチディスプレイする方法 - テラシュールブログ
- cameraとdisplayの紐付けについてはこちらが参考になります
- 要は手元の操作用PCの画面にも追加モニターの画面にも、別々の内容が映せれば成功
検証環境
- Unity 2017.4.1f1
- Mac High Sierra ver 10.13.4
- HDMI接続したモニター1枚
設定
ディスプレイのActivate
実行開始時にDisplay.Activateされるよう、以下で紹介されているコードを書いて、
適当なオブジェクトにアタッチしておく(マニュアルではデフォルトカメラにつけると紹介されている)
マルチディスプレイ - Unity マニュアル
以下、上記より引用
void Start()
{
Debug.Log("displays connected: " + Display.displays.Length);
// Display.displays[0] は主要デフォルトディスプレイで、常に ON。
// 追加ディスプレイが可能かを確認し、それぞれをアクティベートします。
if (Display.displays.Length > 1)
Display.displays[1].Activate();
if (Display.displays.Length > 2)
Display.displays[2].Activate();
...
}
Player 設定
- File > Build Setting > Player Setting > Setting for PC, Mac & Linux Standalone > Other Settings > Rendering > Auto Graphics API for Mac のチェックをはずす
- Graphics APIs for Mac 欄の順序で OpenGLCore が一番上にくるようにリストを操作する
参考URL :
Multi-Display Support (Unity 5.3 Mac) - Unity Answers
build
注意点
1番モニター、2番モニター…とあった時に
- 1番モニターとなる画面上で実行する
- Unityの画面あるいはfinderの画面を1番モニターの画面上に配置して実行する
- 2番モニターの画面上で実行すると、2番モニターに1番モニターの内容が表示されて1番モニターが仕事をサボることになる
- 全画面表示で実行する。Windowedにチェックした状態で実行しても上手くいかなかった
ログの確認
buildして実行している間、Debug.Logの内容は Mac では ~/Library/Logs/Unity/Player.log に記録される。
上記で引用したActivate用のコードを走らせると、ディスプレイの数がカウントされて印字されているはずなので、確認しておく。