続いて、マウスポインタの位置についてです。マウスポインタの位置も、
Inputクラスのメソッドで得ることができます。「
mousePosition」というプロパティです。
Vector3 変数 = Input.mousePosition;
このようにして、現在のマウスの位置を
Vector3インスタンスとして取り出すことができます。この中からxとyの値を取り出せばいいわけですね。
問題は、こうして取り出される値は、シーン上の位置ではない、という点です。これは、「スクリーン上の位置(
スクリーン座標)」なのです。
Unityのマウス位置で注意すべきは、「マウスポインタは、シーン空間の中にはない」という点です。シーンは3次元空間ですが、それが実際に表示されるスクリーンは2次元であり、この2次元平面上にマウスポインタはあります。ですから
mousePositionで得られる
Vector3は、シーンの3次元空間上にある位置を示すものではない、という点に注意する必要があります。
■GUITextにマウス位置を表示する
実際に、
mouseuPositionの値を確認してみましょう。シーンに、
GUITextを1つ作成して下さい。Unity 4.5までは
<GameObject>メニューから作成できます。Unity 4.6は、
<GameObject>メニューから
<Create Empty>で空のゲームオブジェクトを作り、これを選択して
<Component>メニューの
<Rendering>から
<GUIText>を選んで組み込みます。作成した
GUITextゲームオブジェクトの名前は「
message」に変更し、表示位置やフォントサイズ、カラーなどを調整してうまく画面にテキストが表示されるようにしておきましょう。
下のリストは、マウスポインタの位置を調べて、「
message」
guiTextに表示するものです。ここでは以下のようにしてマウスポインタの位置を表示しています。
・まず、
Input.mousePositionの値を
Vector3変数に取り出し、その中の
x, yの値を調べてテキストにまとめます。
・
GameObject.Findメソッドを使い、
GUITextのゲームオブジェクトを取り出します。この
Findは、引数に指定した名前のゲームオブジェクトを検索して返すものです。
・
GUITextコンポーネントのオブジェクトは、ゲームオブジェクトの「
guiText」プロパティで得られます。また表示されているテキストは、そのオブジェクトの「
text」プロパティで設定されます。
・
GameObject.Findで取り出したゲームオブジェクトの
guiText.textにテキストを設定すれば、マウスポインタの位置情報が表示されます。