FC2ブログ
    05 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 07

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】ちょっと便利なエディター拡張  一括でオブジェクト名の前とか後に文字列追加するやーつ 

    ハルシオンブログへようこそ。
    本日も役に立たないようなよくわからない記事を書いていきます。坂内っす。

    今回は素敵なエディタ拡張を発見したので紹介。



    こんな感じで、選択したオブジェクト以下のオブジェクト名を一括で変更するやつ。

    こんなコードをEditor以下に置きます。

    [PrefixAdder.cs]

    using UnityEngine;
    using UnityEditor;

    public class PrefixAdder : ScriptableWizard {
    [SerializeField] string prefix;
    [SerializeField] string subfix;

    [MenuItem("UITools/オブジェクト名追加ツール", false)]
    static bool CreateWizardValidator() {
    Transform[] transforms = Selection.GetTransforms(SelectionMode.ExcludePrefab);
    return transforms.Length >= 1;
    }

    [MenuItem("UITools/オブジェクト名追加ツール", false)]
    static void CreateWizard() {
    ScriptableWizard.DisplayWizard("オブジェクト名追加ツール", typeof(PrefixAdder), "リネーム",
    "閉じる");
    }

    void OnWizardCreate() {
    ApplyPrefix();
    }

    void ApplyPrefix() {
    GameObject[] gos = Selection.gameObjects;
    foreach (GameObject go in gos) {
    var parent = go.GetComponentInParent(typeof(Transform));
    var children = go.GetComponentsInChildren(typeof(Transform));

    //子のリネーム
    foreach (Transform child in children) {
    Undo.RegisterCompleteObjectUndo(child.gameObject,
    "Added: " + (string.IsNullOrEmpty(prefix) ? "" : prefix + " ") +
    (string.IsNullOrEmpty(subfix) ? "" : subfix));

    if (child == go.transform)
    continue;

    if (!string.IsNullOrEmpty(prefix)) {
    child.name = prefix + child.name;
    }
    if (!string.IsNullOrEmpty(subfix)) {
    child.name = child.name + subfix;
    }
    }

    if (!string.IsNullOrEmpty(prefix)) {
    parent.name = prefix + parent.name;
    }
    if (!string.IsNullOrEmpty(subfix)) {
    parent.name = parent.name + subfix;
    }

    }
    }

    void OnWizardOtherButton() {
    this.Close();
    }

    void OnWizardUpdate() {
    Transform[] transforms = Selection.GetTransforms(SelectionMode.ExcludePrefab);
    errorString = "";
    isValid = true;

    if (transforms.Length < 1) {
    errorString += "オブジェクトを選択してください。";
    }
    isValid = string.IsNullOrEmpty(errorString);

    }

    void OnSelectionChange() {
    OnWizardUpdate();
    }
    }


    ここから起動できます。



    使うことあるかもしれませんね!

    ちょっと便利なエディター拡張の紹介でした!


    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/882-ecb70e47
    この記事にトラックバックする(FC2ブログユーザー)