今回は、前回のSceneManagerスクリプト出力と同じような感じでTagManagerを作ってみました
UnityのTagの取得方法はこちらです
using UnityEditorInternal;
var tagNames = InternalEditorUtility.tags;
これでtagのstringの配列が取得できます
前回の記事Scene遷移の引数を文字列ではなくenum型にしてタイプセーフにしてみた
を少し変更すればTagManagerが作成できるエディタ拡張スクリプトができます
前の記事のように今回も
Unityの拡張エディタで作成した独自メニューを選んだら、ラッパークラスを出力するようにしました
ソースコードをgithubにあげておきました
https://github.com/AiginaCoder/UnityTools/blob/master/SampleProject/Assets/Editor/CreateTagManagerScriptEditor.cs
良ければお使いください、ちょいちょい改良していきます
使い方は簡単です
使い方はCreateTagManagerScriptEditor.csをAssets/Editorに入れてメニューに追加されたAiginaCoder/Create/MakeTagManagerScriptを選択してOKを選ぶとTagManagerクラスがScriptsフォルダに出力されます
tagを追加するたびにこの操作が必要です
あとはtag文字列を取得したいところで以下を呼び出せばstring型のtag名が取得できます
var tag = AC.TagManager.Instance.GetTagString (AC.TagManager.TagID."タグ名");
TagManagerのメリット
- tagを削除したときにエディタ拡張で出力しなおせば、使用していた箇所をエディタがエラーで教えてくれる
- TagIDのenumを定義しているので、tagを引数にもちいる関数を作るとき明確になる(通常はstring型になると思います)
なにか不具合などあればコメントによろしくお願いします