↔️

RectTransformの各プロパティis何?まとめ

2023/06/09に公開

無限スクロール的な処理を作っているときに、
RectTransformの各プロパティがそれぞれ何を表していて、どのような値になっているのか意外と詳しく把握できていなかったので調査した結果を記事にまとめておきます。

localPosition

is何?
親のpivot座標自分のpivot座標相対距離

pivot座標とはエディタに◎で表示されるアレです
つまりlocalPositionをzeroにすると親の◎と自分の◎が重なります
アレ
コレ

anchorMin / anchorMax

is何?
親の領域のどの部分を基準とするか

エディタにバッテンで表示される領域そのものです
コレ
コレ

基準の設定なので、コレ単体で語ることはできません
anchoredPositionsizeDeltaに関わるので、それぞれご確認ください

anchoredPosition

is何?
親の基準とする座標自分のpivot座標相対距離

親の基準とする座標とは自身のanchorMinとanchorMaxの中心を親領域に適用したもので、
エディタに表示されるバッテン表示のアレの中心です

つまりバッテン表示のアレの中心 + anchoredPosition == 自分のpivot座標 ということです

コレ

言い換えるとanchoredPositionをzeroにすると、◎とバッテンの中央が一致します

sizeDelta

is何?
親の基準領域のサイズ自分のサイズの 相対サイズ

親の基準領域とは自身のanchorMinとanchorMaxを親領域に適用したもので、
エディタに表示されるバッテン表示の領域そのものです

つまりバッテン領域のサイズからみた自分のサイズの差分ということです

rect

is何?
自分のローカル座標系での領域
  • rect.min is 自分のローカル座標系での左下隅の座標
  • rect.max is 自分のローカル座標系での右上隅の座標
  • rect.size is 自分のサイズ

座標の数値は自分のpivot座標(=localPosition)からの相対位置です

その他、関連する便利関数など

プロパティではないですが、ついでにRectTransformをプログラムで整列処理するときに手助けとなった関数も紹介しておきます!

RectTransform.GetLocalCorners

is何?
自分のローカル座標系での四隅の座標が取得可能

rectと同じく座標の数値は自分のpivot座標(=localPosition)からの相対位置です
また、「左下 / 左上 / 右上 / 右下」の順序で配列に格納されます

Rect.NormalizedToPoint

is何?
正規化座標を元に領域内の座標を取得する
  • new Vector2(0, 0) を渡すと 左下 の座標
  • new Vector2(1, 1) を渡すと 右上 の座標
  • new Vector2(0.5f, 0.5f) を渡すと 中心 の座標

Text.GetTextAnchorPivot

is何?
TextAnchor正規化座標に変換する

以下、対応表です

TextAnchor 戻り値
UpperLeft (0, 1)
UpperCenter (0.5, 1)
UpperRight (1, 1)
MiddleLeft (0, 0.5)
MiddleCenter (0.5, 0.5)
MiddleRight (1, 0.5)
LowerLeft (0, 0)
LowerCenter (0.5, 0)
LowerRight (1, 0)

Discussion