Unity

Unity 2017.4.1f1 と Mac でマルチディスプレイ実行

やりたいこと

検証環境

  • 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 設定

  1. File > Build Setting > Player Setting > Setting for PC, Mac & Linux Standalone > Other Settings > Rendering > Auto Graphics API for Mac のチェックをはずす
  2. 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用のコードを走らせると、ディスプレイの数がカウントされて印字されているはずなので、確認しておく。

ログファイル - Unity マニュアル