コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】タグ名を定数で管理するクラスを生成する拡張機能

概要

// ゲームオブジェクトがキャラクターかどうか
if (gameObject.CompareTag("Character"))
{
    // ...
}

ゲームオブジェクトのタグを判定する場合も文字列指定でタイプセーフではないので
シーン名と同様にタグ名を定数で管理するクラスを自動生成する機能を作って使用しています

上記のファイルをUnityプロジェクトのEditorフォルダに追加すると
Unityエディタのメニューに「Tools>Create>Tag Name」が追加されます
これを選択するとタグ名を定数で管理するTagName.csが生成されます

/// <summary>
/// タグ名を定数で管理するクラス
/// </summary>
public static class TagName
{
    public const string Untagged = "Untagged";
    public const string Respawn = "Respawn";
    public const string Finish = "Finish";
    public const string EditorOnly = "EditorOnly";
    public const string MainCamera = "MainCamera";
    public const string Player = "Player";
    public const string GameController = "GameController";
    public const string Character = "Character";
}

あとはゲームオブジェクトのタグを判定する時にこのクラスを使用します

// ゲームオブジェクトがキャラクターかどうか
if (gameObject.CompareTag(TagName.Character))
{
    // ...
}

関連記事