前提・実現したいこと
Unityを使用してディスプレイのキャプチャを撮り、オブジェクトに映すという機能を
実装するために System.Windows.Forms.Screen を使用して画面の縦幅、横幅を取得しようとしています。
環境は下記のとおりです。
OS:Windows10
Unityエディター:2018.2.18f1
発生している問題・該当のソースコード
ディスプレイを二つ使用し、下記ソースを実行すると、ディスプレイが一つと認識されてしまいます。
片方が認識されているというよりは、二つのディスプレイが一つとして扱われているように見えます。
ディスプレイが複数ある場合は、どのディスプレイのキャプチャを映すか選択できるようにしたいため、
System.Windows.Forms.Screen.AllScreens.Lengthが
実際使用しているディスプレイの数で取得できる方法はないでしょうか。
using System.Collections; using System.Threading; using UnityEngine; using Screen = System.Windows.Forms.Screen; using Graphics = System.Drawing.Graphics; using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; public class MonitorManager { // Use this for initialization void Start() { // 結果は1 Debug.Log(Screen.AllScreens.Length); // 結果は1080 Debug.Log(Screen.AllScreens[0].Bounds.Height); // 結果は3840 Debug.Log(Screen.AllScreens[0].Bounds.Width); } }
回答1件
あなたの回答
tips
プレビュー