【Unity】オブジェクトを特定の命名に変更するスクリプト

ボタンの色を変更する

エディタ拡張。

練習がてらオブジェクトを特定の命名に変更するスクリプトを作成してみました。

スポンサーリンク

スクリプト

オブジェクトを選択。

メニューからウインドウを起動。

変更したいボタンを押してリネームします。

スポンサーリンク

コード

using UnityEngine;
using UnityEditor;

    [MenuItem("UITools/UIRenamer")]
    static void Init()
    {
        EditorGUILayoutToggle window = (EditorGUILayoutToggle)EditorWindow.GetWindow(typeof(EditorGUILayoutToggle), true, "UIRenamer");
        window.Show();
    }

    void OnGUI()
    {

        if (GUILayout.Button("Button"))
            foreach (GameObject button in Selection.gameObjects)
            {
                Undo.RecordObject(button, "Undo Rename");
                button.name = "Button";

                //Undo.RegisterCreatedObjectUndo(button, "Create object");
            }

        if (GUILayout.Button("Carousel"))
            foreach (GameObject carousel in Selection.gameObjects)
            {
                Undo.RecordObject(carousel, "Undo Rename");
                carousel.name = "Carousel";
            }

        if (GUILayout.Button("Gauge"))
            foreach (GameObject gauge in Selection.gameObjects)
            {
                Undo.RecordObject(gauge, "Undo Rename");
                gauge.name = "Gauge";
            }

        if (GUILayout.Button("Label"))
            foreach (GameObject label in Selection.gameObjects)
            {
                Undo.RecordObject(label, "Undo Rename");
                label.name = "Label";
            }

        GUI.color = Color.yellow;
        GUILayout.Space(20);
        if (GUILayout.Button("Close"))
            this.Close();
    }
}

備考

GameObject gauge = Selection.activeGameObject;複数ではなく、単体で選択したオブジェクトに対して実行したい時

Undo.RecordObject(label, "Undo Rename");変更を取り消したい時

GUILayout.Space(20);ボタンの間隔を開けたい時

GUI.color = Color.yellow;ボタンに色をつけたい時

参考

Unity エディター拡張入門 - Web 無料公開版
無料公開中のWeb版の情報が役に立ったら、ぜひPDF版を買ってね!

コメント