Unity

【Unity】uGUIで編集中にサイズや位置、スケールを変更するスクリプト

ugui-adjustment-script

Mayaのmelみたく、コード打ったら、その場でサイズとか変更できないかなーと思って試してみました。

独学なので、もっと良い方法がありましたら教えてください。

アタッチするとサイズや位置、スケールを変更するスクリプト

using UnityEngine;
[ExecuteInEditMode]
public class test : MonoBehaviour {
// Update is called once per frame
void Update ()
{
RectTransform rectTransform = this.GetComponent<RectTransform>();
//サイズ変更
rectTransform.sizeDelta = new Vector2(256, 128);
}
}
  • [ExecuteInEditMode]を記述すると編集中にスクリプトが実行されます。

  • rectTransform.localPosition = new Vector2(0, 0);  //座標移動

  • rectTransform.localScale = new Vector3(3, 3, 3);  //スケール変更

カスタムメニューからサイズや位置、スケールを変更するスクリプト

  • Editorフォルダに下記のスクリプトを格納します。
using UnityEngine;
using UnityEditor;
public class test : MonoBehaviour {
[MenuItem("Custum/サイズ変更", false, 1)]
static void ChangeSize(MenuCommand command) {
GameObject obj = Selection.activeGameObject;// 選択しているゲームオブジェクトを取得    
RectTransform rectTransform = obj.GetComponent<RectTransform>();
Undo.RecordObject (rectTransform.transform, "Undo");
rectTransform.sizeDelta = new Vector2(256, 128);
}
}
  • 選択したオブジェクトに対して、上部メニューからスクリプトを実行
  • Undoも追加

参考

UnityのEditorを拡張して自前のメニュー項目を表示する | Unityを使った3Dゲームの作り方(かめくめ)

感想

思いついたことを、なんとか実現。

今回のスクリプトは、デザイナーにも扱えて応用がききそうです。

Unityの参考紹介

参考記事

  • Unityに関連する記事まとめ95選!
  • 参考書籍

    ABOUT ME
    すいみん
    東京在住。デザイナー寄りのテクニカルデザイナー。 ブログは技術検証の備忘録として書いています。