読者です 読者をやめる 読者になる 読者になる

RectTransformのsizeDeltaが0になる

f:id:SprField:20170319230556p:plain

RectTransform の設定で幅を stretch させたとき、
オブジェクトのサイズの取得をしようとすると
なんと幅が 0.0f で返ってくる。

サイズを変更するときは sizeDelta で問題なかった。
stretch じゃなければ、sizeDelta で幅を取得することも問題なかった。
が、幅を stretch させた瞬間、やっぱり 0.0f が返ってくる。

RectTransform rectTransform = GetComponent<RectTransform>();
Debug.Log( "sizeDelta = " + rectTransform.sizeDelta );

▼出力結果
sizeDelta = (0.0, 0.0)

 他のパラメータを探ってみる

とりあえずなんでもいいから手当たり次第に
他のパラメータで取得できないかログに吐き出してみる。

Debug.Log( "anchor : " + rectTransform.anchorMin + " - " + rectTransform.anchorMax );
Debug.Log( "offset : " + rectTransform.offsetMin + " - " + rectTransform.offsetMax );
Debug.Log( "anchorPos : " + rectTransform.anchoredPosition );
Debug.Log( "rect : " + rectTransform.rect );
Debug.Log( "localScale : " + rectTransform.localScale );
Debug.Log( "sizeDelta : " + rectTransform.sizeDelta );

▼出力結果
anchor : (0.0, 0.0) - (1.0, 1.0)
offset : (0.0, 0.0) - (0.0, 0.0)
anchorPos : (0.0, 0.0)
rect : (x:0.00, y:-407.00, width:453.00, height:407.00)
localScale : (1.0, 1.0, 1.0)
sizeDelta : (0.0, 0.0)

あった……ありました……
rect の width height だとちゃんと取れるみたいですね。