実現したいこと
・ある特定のウィンドウの座標を「モニター」上での座標に変換したい。
スクリーン座標やワールド座標ではなく、タスクバーなど含むモニター全体において左下を(0,0)とした場合のモニターにおける座標を取得したい。
・ある特定のウィンドウの座標がマルチディスプレイにおけるどのディスプレイの上にあるかを判定したい。
・現在判定中のディスプレイの解像度を取得したい。
前提
・UnityでPCに常駐するデスクトップマスコットを作っています。
・マルチディスプレイ環境でも動作することを目指しています。(ここでいうマルチディスプレイとはウィンドウを複数同時起動することではなく、例えばモニター3枚を並べていても動くという意味です。)
試したこと
UnityのDisplayクラスが目的に一致するものだと思い、試行錯誤
→どうやらウィンドウを複数同時起動する際に使うクラスだったよう
using System.Windows.Forms;を使ってみる
→マウスのモニター上での座標を取得するのはSystem.Windows.Forms.Cursor.Positionによって行えた。
どうやらC#におけるクライアント座標とスクリーン座標を変換することができることも判明。
しかし、「C#におけるクライアント座標とスクリーン座標」↔「Unityにおけるスクリーン座標」の変換が結局分からず頓挫。
補足情報(FW/ツールのバージョンなど)
Unity 2021.3.28f1
回答1件
あなたの回答
tips
プレビュー