コガネブログ

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

【Unity】レイヤー名を定数で管理するクラスを生成する拡張機能

概要

// ゲームオブジェクトのレイヤーを変更します
gameObject.layer = 8;

ゲームオブジェクトのレイヤーを変更してどのカメラに写すかを設定する場合
レイヤーの番号を指定しますが、間違えやすいし何のレイヤーなのかわかりづらいので
シーン名やタグ名と同様にレイヤーの番号を定数で管理するクラスを
自動生成する機能を作って使用しています

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

/// <summary>
/// レイヤー名を定数で管理するクラス
/// </summary>
public static class LayerName
{
    public const int Default = 0;
    public const int TransparentFX = 1;
    public const int IgnoreRaycast = 2;
    public const int Water = 4;
    public const int Character = 8;
    public const int DefaultMask = 1;
    public const int TransparentFXMask = 2;
    public const int IgnoreRaycastMask = 4;
    public const int WaterMask = 16;
    public const int CharacterMask = 256;
}

あとはゲームオブジェクトのレイヤーを変更する時にこのクラスを使用します

// ゲームオブジェクトのレイヤーを変更します
gameObject.layer = LayerName.Character;

関連記事