コガネブログ

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

【Unity】Inspector で Flags 属性が適用された列挙型の値を設定しやすくする PropertyDrawer その2

using System; using UnityEngine; [Flags] public enum TYPE // タイプ { GRASS = 1 << 0, // くさ FIRE = 1 << 1, // ほのお WATER = 1 << 2, // みず } public class NewBehaviourScript : MonoBehaviour { [EnumFlags] public TYPE Type; public void On…

【Unity】Inspector で Flags 属性が適用された列挙型の値を設定しやすくする PropertyDrawer

using System; using UnityEngine; [Flags] public enum TYPE // タイプ { GRASS = 1 << 0, // くさ FIRE = 1 << 1, // ほのお WATER = 1 << 2, // みず } public class NewBehaviourScript : MonoBehaviour { [EnumFlags] public TYPE Type; public void On…

【Unity】Inspector にヘルプボックスを表示する DecoratorDrawer

上記のように Unity の Inspector ビューにヘルプボックスを表示できる DecoratorDrawerを作成しました 上記の HelpBoxAttribute.cs を Unity プロジェクトに追加して 下記のようなスクリプトを書くことで Inspector ビューにヘルプボックスを表示できるよう…

【Unity】Inspector に指定された関数を実行するボタンを表示する PropertyDrawer

Unity の Inspector ビューにボタンを表示して 指定された関数を実行できるようにする PropertyDrawer を作成しました 上記の ButtonAttribute.cs を Unity プロジェクトに追加して 下記のようなスクリプトを書くことで Inspector に指定された関数を実行す…

【C#】「Obsolete」属性を使用してクラスや関数を使用された時にエラーや警告を発生させる

using System; [Obsolete("use other class")] public static class MyClass { [Obsolete("use other function", true)] public static void Call() { } } MyClass.Call(); Obsolete属性をクラスや関数に適用すると そのクラスや関数が使用された時にエラー…

【Unity】Vector2型、Vector3型、Rect型、Bounds型の変数の値をInspectorで設定しやすくする「CompactAttribute」

using UnityEngine; public class MyBehaviourScript : MonoBehaviour { public Vector2 Vector2; public Vector3 Vector3; public Rect Rect; public Bounds Bounds; } 通常、Vector2型やVector3型の変数の値をInspectorで設定する場合、 上記のような表示…

【Unity】正規表現を使用してstring型の値を制限する「RegexAttribute」

「RegexAttribute.cs」をUnityプロジェクトに追加します Unityプロジェクトに「Editor」フォルダが存在しない場合は作成します 「RegexDrawer.cs」をUnityプロジェクトの「Editor」フォルダに追加します 下記のような構文で使用します using UnityEngine; pu…

【Unity】string型の値を複数行で入力する「MultilineAttribute」

ソースコード using UnityEngine; public class MyBehaviourScript : MonoBehaviour { [Multiline] public string Comment; //[Multiline(10)] public string Comment; } 表示

【Unity】値の入力範囲を制限する「RangeAttribute」

using UnityEngine; public class MyBehaviourScript : MonoBehaviour { [Range(0, 100)] public int Level; }

【Unity】MenuItem でショートカットキーを登録

MenuItem 属性 Unity では MenuItem 属性を static な関数に適用することで その関数を Unity のメニューから呼び出せるようになりますが、 特殊な記号を使用することでショートカットキー(ホットキー)を作成することが可能です 記号 Windows Mac % Ctrl c…