はじめに
var t = self.GetComponent<RectTransform>(); // 取得 var width = t.sizeDelta.x; var height = t.sizeDelta.y; // 設定 var sizeDelta = t.sizeDelta; sizeDelta = new Vector2( 128, 64 ); t.sizeDelta = sizeDelta;
RectTransform の幅と高さと取得、設定する記述が少し冗長に感じたので
わかりやすくするための拡張メソッドを作成しました
ソースコード
using UnityEngine; /// <summary> /// RectTransform 型の拡張メソッドを管理するクラス /// </summary> public static class RectTransformExt { /// <summary> /// 幅を返します /// </summary> public static float GetWidth( this RectTransform self ) { return self.sizeDelta.x; } /// <summary> /// 高さを返します /// </summary> public static float GetHeight( this RectTransform self ) { return self.sizeDelta.y; } /// <summary> /// 幅を設定します /// </summary> public static void SetWidth( this RectTransform self, float width ) { var size = self.sizeDelta; size.x = width; self.sizeDelta = size; } /// <summary> /// 高さを設定します /// </summary> public static void SetHeight( this RectTransform self, float height ) { var size = self.sizeDelta; size.y = height; self.sizeDelta = size; } /// <summary> /// サイズを設定します /// </summary> public static void SetSize( this RectTransform self, float width, float height ) { self.sizeDelta = new Vector2( width, height ); } }
使い方
var t = self.GetComponent<RectTransform>(); // 取得 var width = t.GetWidth(); var height = t.GetHeight(); // 設定 t.SetWidth( 128 ); t.SetHeight( 64 ); t.SetSize( 128, 64 );