Unityで座標について。
サイズ
画面の大きさは幅がScreen.width、高さはScreen.heightで取得。
Debug.Log("w:" + Screen.width);
Debug.Log("h:" + Screen.height);
座標
オブジェクトの配置
オブジェクトの配置の場合は中央が0,0になります。
ゲームオブジェクトを中央に置くには以下のように記述します。
GameObject go=GameObject.Find("Image");
var t = go.GetComponent<RectTransform>();
Vector2 p = t.localPosition;
p.x = 0;
p.y = 0;
t.localPosition = p;
またImageなどの物体は中央にPivotがあります。
Pivotを0,0にすると、ちょうど左下が中央点となります。
Imageが0,0でも、親オブジェクトが移動すると画面上の位置は変わります。
ただ親オブジェクトが移動しただけではローカルポジション0,0は変わりません。
マウス座標
Input.mousePositionで取得できます。
Vector2 pos = Input.mousePosition;
Debug.Log("x:" + pos.x + ",y:" + pos.y);
位置の起点は左下となります。
スケール
Canvasは設定で固定させたりスケールして拡大表示させることができます。
Canvasだけ拡大させれば、その内部での座標処理を変更しなくても大丈夫です。