実現したいこと
Unityにおいてディスプレイの情報を取得したい。
前提
https://qiita.com/kewpie134134/items/bbdc49dc38fe84a48c1a
こちらの記事を参考にして、ディスプレイの情報を取得しました。
発生している問題・エラーメッセージ
Unityにおいて、マルチディスプレイであるにも関わらず大きな一つのディスプレイとして認識してしまいます。
この現象はC#のWindowsフォームアプリケーションとして新たに作ったテストプロジェクトでは起きない現象です。
Unityとテストプロジェクトにおいて、使っている関数は全く同じものです。
こちらがUnityにおける取得情報。
こちらがテストプロジェクトにおける取得情報。
該当のソースコード
C#,Unity
1 using System.Windows.Forms; 2 3 /// <summary> 4 /// 全てのディスプレイの情報取得 5 /// </summary> 6 private String GetAllDisplayInformation() 7 { 8 String displayMainTitle = ""; 9 String displayDeviceName = ""; 10 String displayBoundsX = ""; 11 String displayBoundsWidth = ""; 12 String displayWorkingAreaX = ""; 13 String displayWorkingAreaWidth = ""; 14 String displayEnd = ""; 15 String messages = ""; 16 17 try 18 { 19 displayMainTitle = "\n-----\n●全てのディスプレイの情報取得"; 20 foreach (System.Windows.Forms.Screen screen_data in System.Windows.Forms.Screen.AllScreens) 21 { 22 displayDeviceName = "\nデバイス名 : " + screen_data.DeviceName; 23 displayBoundsX = "\nディスプレイの位置 : X=" + screen_data.Bounds.X + " - Y=" + screen_data.Bounds.Y; 24 displayBoundsWidth = "\nディスプレイのサイズ : 幅=" + screen_data.Bounds.Width + " - 高さ=" + screen_data.Bounds.Height; 25 displayWorkingAreaX = "\nディスプレイの作業領域の位置 : X" + screen_data.WorkingArea.X + " - Y=" + screen_data.WorkingArea.Y; 26 displayWorkingAreaWidth = "\nディスプレイの作業領域のサイズ : 幅" + screen_data.WorkingArea.Width + " - 高さ=" + screen_data.WorkingArea.Height; 27 displayEnd = "\n-----"; 28 29 messages += displayDeviceName + displayBoundsX + displayBoundsWidth + displayWorkingAreaX + displayWorkingAreaWidth + displayEnd; 30 31 } 32 } 33 catch 34 { 35 } 36 return displayMainTitle + messages; 37 }
試したこと
友人に別のマルチディスプレイ環境のPCで試してもらったところ同じ現象が起きました。
補足情報(FW/ツールのバージョンなど)
Unity 2021.3.28f1
Visual Studio 2019

回答1件
あなたの回答
tips
プレビュー