(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


Anchorsが異なるRectTransformに同じサイズを設定する方法【Unity】【uGUI】


このエントリーをはてなブックマークに追加


この記事でのバージョン
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);