3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Tagを自動で定義してTagManagerを吐き出す、エディタ拡張のスクリプトを作ってみた

Last updated at Posted at 2016-07-28

今回は、前回の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型になると思います)

なにか不具合などあればコメントによろしくお願いします

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?