gamebox

unityとかゲームとか

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

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

 

f:id:rgamebox:20180531173431g:plain

 

f:id:rgamebox:20180531173508p:plain

 

//
// !不完全なコードです
//

    private Vector3 position;                       // マウス位置取得
    public RectTransform canvaGameRect;  //座標変換したいキャンバス

       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();