using UnityEngine;
public classMyPropertyAttribute : PropertyAttribute
{
public string Label;
public MyPropertyAttribute(string label)
{
Label = label;
}
}
1.PropertyAttributeを継承したクラス作成
using UnityEngine;
public classCharacter : MonoBehaviour
{
[Popup("王国兵士", "魔法使い")]
public string Job;
[Popup(1, 5, 10, 50, 100, 500)]
public int Money;
}
PopupAttributeを使用する
using UnityEditor;
public staticclass MyClassCreator
{
// Unityエディタのメニューに
// ソースコード自動生成用のコマンドを追加します
[MenuItem("Tools/Create My Class")]
private static void Create()
{
}
}
1.MenuItemが適用された静的関数を作成
45.
// ソースコードを表す文字列を作成します
var builder= new System.Text.StringBuilder();
builder.AppendLine("public class MyClass");
builder.AppendLine("{");
builder.AppendLine("}");
2.StringBuilderで文字列を作成
タグ名を定数で管理するクラスの生成
/// <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";
}
レイヤー名を定数で管理するクラスの生成
/// <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;
}