コガネブログ

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

【Unity】Inspector のパラメータの欄に GetComponentInChildren ボタンを追加する Attribute

ソースコード 使い方 using UnityEngine; public class Example : MonoBehaviour { [GetComponentInChildren] public BoxCollider collider; [GetComponentInChildren] public Rigidbody rigidbody; } スポイトボタンを押すと、 子オブジェクトから対象のコ…

【Unity】Inspector のパラメータの欄に GetComponent ボタンを追加する Attribute

ソースコード 使い方 using UnityEngine; public class Example : MonoBehaviour { [GetComponent] public Transform transform; [GetComponent] public Example example; } スポイトボタンを押すと、 ゲームオブジェクトから対象のコンポーネントを GetComp…

【Unity】Inspector で各種パラメータをプルダウンメニューで選択できる PropertyAttribute のコレクション「Unity Forge Property Drawers」紹介

はじめに 「Unity Forge Property Drawers」は Inspector で 各種パラメータをプルダウンメニューで選択できる PropertyAttribute のコレクションです 使用例 AnimationName [SerializeField, AnimationName] private string animationName; 下記のように記…

【Unity】2つの PropertyAttribute が使用できる「Essential Editor」紹介

はじめに 「Essential Editor」を Unity プロジェクトに導入することで 2つの PropertyAttribute が使用できるようになります 使用例 使い方 using EssentialEditor; using UnityEngine; public class Example : MonoBehaviour { [ExposeMethod] private voi…

【Unity】AudioClip のプレビュー再生ボタンを追加する PropertyDrawer「Unity3D_PropertyDrawer_AudioClip」紹介

はじめに 「Unity3D_PropertyDrawer_AudioClip」は AudioClip のプレビュー再生ボタンを追加する PropertyDrawer です 使用例 using UnityEngine; public class Example : MonoBehaviour { public AudioClip[] clips; } このようなコードを記述すると Inspec…

【Unity】Inspector 内に他オブジェクトのパラメータを表示する PropertyAttribute「DisplayInspector-Attribute」紹介

概要 「DisplayInspector-Attribute」を Unity プロジェクトに導入することで Inspector 内に他オブジェクトのパラメータを表示できるようになります 使用例 using UnityEngine; public class Example : MonoBehaviour { [DisplayInspector] public Transfor…

【Unity】Inspector 内に他オブジェクトの Custom Inspector を表示する PropertyAttribute「EmbeddedInspectorAttribute.cs」

ソースコード 使用例 using RedBlueGames.Tools; using UnityEngine; public class Example : MonoBehaviour { [EmbeddedInspector] public RectTransform target; } 関連記事

【Unity】Inspector の項目をハイライト表示する PropertyAttribute「HighlightAttribute」紹介

はじめに https://gist.github.com/LotteMakesStuff/2d3c6dc7a913ed118601db95735574de 「HighlightAttribute」は Inspector の項目をハイライト表示する PropertyAttribute です 使用例 using UnityEngine; public class Example : MonoBehaviour { [Highli…

【Unity】Inspector にゲージを表示する PropertyAttribute「StatsBarAttribute」紹介

はじめに https://gist.github.com/LotteMakesStuff/b8853a16de3e680dc1c326fe6f5ebd7e 「StatsBarAttribute」は Inspector にゲージを表示する PropertyAttribute です 使用例 using UnityEngine; public class Example : MonoBehaviour { [StatsBar( "max"…

【Unity】Inspector の入力欄の色を変更できる PropertyDrawer「ColorMeDrawer」

ソースコード 使い方 「ColorMeDrawer.cs」は Unity プロジェクトの「Editor」フォルダ内に、 「ColorMeAttribute.cs」は Unity プロジェクトのどこかに追加することで使用できます using UnityEngine; public class Example : MonoBehaviour { [ColorMe( 1,…

【Unity】Game ビューに変数の値を表示する属性を使用できる「OpenWatcher」紹介

はじめに 「OpenWatcher」を Unity プロジェクトに導入することで Game ビューに変数の値を表示する属性を使用できるようになります 使用例 使い方 using UnityEngine; public class Example : MonoBehaviour { [Watch] public float speed; [Watch] public …

【Unity】26個の PropertyAttribute が使用できる「NaughtyAttributes」紹介

はじめに 「NaughtyAttributes」を Unity プロジェクトに導入することで 26個の PropertyAttribute が使用できるようになります 目次 はじめに 目次 Slider MinMaxSlider ReorderableList Button Dropdown ResizableTextArea ShowNonSerializedField ShowNat…

【Unity】Inspector で変数の参照が設定されていないオブジェクトを発見できる「NotNullAttribute」紹介

はじめに 「NotNullAttribute」を Unity プロジェクトに導入することで Inspector で変数の参照が設定されていないオブジェクトを発見できるようになります 使い方 using UnityEngine; public sealed class Example : MonoBehaviour { public GameObject m_g…

【Unity】シェーダを実装する時に MaterialPropertyDrawer を使用して Inspector の表示をカスタマイズする

はじめに https://docs.unity3d.com/ScriptReference/MaterialPropertyDrawer.html シェーダを実装する時に MaterialPropertyDrawer を使用することで Inspector の表示をカスタマイズすることができます MaterialPropertyDrawer は自作することができますが…

【Unity】Inspectorに表示されるパラメータをUnityエディタ再生中のみ編集不可能にするPropertyAttribute

概要 using UnityEngine; public class Example : MonoBehaviour { [UnchangeableInPlaying] public int m_id; [UnchangeableInPlaying] public string m_name; } 関連記事

【Unity】Inspectorに表示されるパラメータを編集不可能にするPropertyAttribute

概要 using UnityEngine; public class Example : MonoBehaviour { [Unchangeable] public int m_id; [Unchangeable] public string m_name; } 関連記事

【Unity】スクリプトがコンパイルされた時に呼び出されるコールバック関数を指定できる「DidReloadScripts属性」

using UnityEditor.Callbacks; using UnityEngine; public class Example { [DidReloadScripts] private static void Log() { Debug.Log( "コンパイルされました" ); } } using UnityEditor.Callbacks; using UnityEngine; public class Example { [DidReloa…

【Unity】Unity 4.6 新機能「FormerlySerializedAsAttribute」

Unity 4.6 から 「UnityEngine.Serialization.FormerlySerializedAsAttribute」が追加されました using UnityEngine; public class ExampleClass : MonoBehaviour { public int value; } 例えば上記のクラスをオブジェクトにアタッチして Inspectorでvalue変…

【Unity】「OnOpenAssetAttribute」でUnityプロジェクトからファイルが開かれた時に呼び出されるコールバック関数を実装する

「UnityEditor.Callbacks.OnOpenAssetAttribute」属性をstaticな関数に適用することで UnityプロジェクトのProjectビューからアセットを開く時に その関数が呼び出されるようになります using UnityEditor; using UnityEditor.Callbacks; using UnityEngine;…

【Unity】「PostProcessSceneAttribute」でシーンを遷移する時に呼び出されるコールバック関数を実装する

概要 「UnityEditor.Callbacks.PostProcessSceneAttribute」属性をstaticな関数に適用することで SceneManager.LoadSceneやApplication.LoadLevelでシーンを遷移する時に その関数が呼び出されるようになります using UnityEngine; using UnityEditor.Callba…

【Unity】Unity 5.3 新機能「DelayedAttribute」

Unity 5.3 から「UnityEngine.DelayedAttribute」が追加されました using UnityEngine; public class ExampleClass : MonoBehaviour { public int value; void Update() { Debug.Log( value ); } } 例えば上記のようなクラスをオブジェクトにアタッチして エ…

【Unity】カラーコードを入力して色を設定できるエディタ拡張

概要 ColorHtmlPropertyAttribute.csをプロジェクトに追加して、 ColorHtmlPropertyDrawer.csをプロジェクトのEditorフォルダに追加して、 下記のようなスクリプトを記述することで、 Inspectorでカラーコードを入力して色を設定できるようになります using …

【Unity】Unity 5.0 新機能「RuntimeInitializeOnLoadMethodAttribute」

Unity 5.0 から「RuntimeInitializeOnLoadMethodAttribute」が追加されました この属性をstatic関数に適用することでゲーム起動時にその関数が呼び出されます using UnityEngine; public class ExampleClass { [RuntimeInitializeOnLoadMethod] private stat…

【Unity】Unity 5.1 新機能「UnityEngine.HelpURLAttribute」

Unity 5.1 から「UnityEngine.HelpURLAttribute」が追加されました この属性をMonoBehaviourを継承したクラスに適用することで Inspector上でヘルプアイコンをクリックされた時に表示するサイトを設定できます using UnityEngine; [HelpURL( "http://baba-s.…

【Unity】Unity 5.1 新機能「UnityEngine.ColorUsageAttribute」

Unity 5.1 で「UnityEngine.ColorUsageAttribute」が追加されました この属性をColor型のpublic変数に適用することで カラーピッカーの表示を変えることができます Unity 5.1 以前 using UnityEngine; public class ExampleClass : MonoBehaviour { public C…

【Unity】Unity 5.1 新機能「UnityEngine.CreateAssetMenuAttribute」

Unity 5.1 で「UnityEngine.CreateAssetMenuAttribute」が追加されました この属性をScriptableObjectを継承したクラスに適用することで そのクラスの.assetを「Assets>Create」メニューから作成できるようになります using UnityEngine; [CreateAssetMenu] …

【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 に指定された関数を実行す…