この記事でのバージョン
Unity 2022.3.32f1
はじめに
UnityのuGUIで以下のような感じでRectTransformに同じサイズに設定したつもりが、
違うサイズになってしまってるという事がありました。
//ウィンドウ1にサイズ指定、ウィンドウ2も同じサイズ(にしたつもり) _window1.sizeDelta = new Vector2(1000, 200); _window2.sizeDelta = _window1.sizeDelta;
今回はそんな時の対処法です!
Anchorsが異なるRectTransformに同じサイズを設定する方法
この原因はAnchorsの値が違う事でした。
そして、こんな時のためにRectTransformにはSetSizeWithCurrentAnchorsという
Anchorsの値にかかわらずサイズを設定するメソッドがありました。
具体的には以下のような感じに。横と縦を別々に設定する必要がある点には注意が必要です。
var width = 1000; var height = 200; //横と縦別々にサイズ設定 _window1.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, width); _window1.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height); _window2.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, width); _window2.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height);