【unity】マウス座標を2Dキャンバス座標に変換する

unity:総合

製作中ゲームでマウス座標をCanvas(2Dキャンバス)座標に変換したかったのでメモります。

 

f:id:rgamebox:20180531173431g:plain

 

f:id:rgamebox:20180531173508p:plain

 

//
// !不完全なコードです
//
private Vector3 position;                       // マウス位置取得
public RectTransform canvaGameRect;  //座標変換したいキャンバス
private Vector3 screenToWorldPointPosition; // スクリーン座標をワールド座標に変換した位置座標
position = Input.mousePosition;             // Vector3でマウス位置座標を取得する
position.z = 0f;
ScreenToViewportPoint = Camera.main.ScreenToViewportPoint(position);
Vector2 WorldObject_ScreenPosition = new Vector2(
((ScreenToViewportPoint .x * canvaGameRect.sizeDelta.x) - (canvaGameRect.sizeDelta.x * 0.5f)),
((ScreenToViewportPoint .y * canvaGameRect.sizeDelta.y) - (canvaGameRect.sizeDelta.y * 0.5f)));
//テキスト出力部分
dbg_text.text =  WorldObject_ScreenPosition.ToString();