コガネブログ

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

エディタ拡張

【Unity】Hierarchy を拡張するアセット「PRO Hierarchy + Memory Monitoring + Navigator for Selecting」紹介

はじめに この記事は「Unity アセット真夏のアドベントカレンダー 2017」の8/18の記事です 昨日は ゆう さんの「開発効率を上げ、手軽に拡張できるFSM「Arbor2」紹介」でした 明日は 青木とと さんの「TextMeshProで生成したテキストをDOTween(Pro)を使って…

【Unity】Project ビューのフォルダを彩る「Rainbow Folders」紹介

はじめに この記事は「Unity アセット真夏のアドベントカレンダー 2017」の8/14の記事です 昨日は Limes さんの「Set Pass Callを劇的に減らす「Mesh Baker」の使い方と、いくつかのモデルをHoloLensで表示した動作結果」でした 明日は kitposition さんの「…

【Unity】Inspector をカスタマイズするエディタ拡張用アセット「Odin - Inspector and Serializer」を64件の記事に分けて紹介

はじめに この記事は「Unity アセット真夏のアドベントカレンダー 2017」の8/5の記事です 昨日は ぽうひろ さんの「DoozyUIでUnityUIを時短de簡単に作っちゃおう!!」でした 明日は ゆーじ さんの「DaydreamのコントローラーをHoloLensで使う」です 概要 20…

【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】【NGUI】BoxColliderの位置とサイズをUIWidgetのパラメータに合わせて調整するボタンをInspectorに追加するエディタ拡張

using System.Linq; using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( BoxCollider ), true )] public sealed class BoxColliderInspector : Editor { public override void OnInspectorGUI() { DrawDefaultInspecto…

【Unity】【NGUI】BoxColliderの位置とサイズをUIWidgetのパラメータに合わせて調整するコンテキストメニューを追加するエディタ拡張

using UnityEditor; using UnityEngine; public static class BoxColliderContextMenu { [MenuItem( "CONTEXT/BoxCollider/Adjust To Match" )] private static void AdjustToMatch( MenuCommand command ) { var boxCollider = command.context as BoxColli…

【Unity】【NGUI】UICenterOnChildのInspectorに整列用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UICenterOnChild ), true )] public sealed class UICenterOnChildEditor : Editor { public override void OnInspectorGUI() { DrawDefaultInspector(); if ( GUIL…

【Unity】【NGUI】UIWrapContentのInspectorにソート用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UIWrapContent ), true )] public sealed class UIWrapContentEditorCustom : UIWrapContentEditor { public override void OnInspectorGUI() { base.OnInspectorGU…

【Unity】【NGUI】UIScrollViewのInspectorにリセット用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UIScrollView ), true )] public sealed class UIScrollViewEditorCustom : UIScrollViewEditor { public override void OnInspectorGUI() { base.OnInspectorGUI()…

【Unity】【NGUI】UIGridのInspectorに整列用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UIGrid ), true )] public sealed class UIGridEditorCustom : UIGridEditor { public override void OnInspectorGUI() { base.OnInspectorGUI(); if ( GUILayout.B…

【Unity】ゲームオブジェクトにコメントを付与できるアセット「GameObject Comments」紹介

概要 「GameObject Comments」を使用すると ゲームオブジェクトにコメントを付与することができます

【Unity】エディタ拡張の記事46選+スライド

Hierarchy ビュー HierarchyにNGUIのUIWidgetのdepthを編集するGUIを表示する Hierarchyを一行おきに色を変えて見やすくする Hierarchyにゲームオブジェクトが持つコンポーネントの一覧を表示する Hierarchyにゲームオブジェクトのアイコンを表示する 無効な…

【Unity】FileUtil.GetProjectRelativePathでプロジェクトからの相対パスを取得する

var path = ""; Debug.Log( FileUtil.GetProjectRelativePath( path ) ); FileUtil.GetProjectRelativePathを使用することで 指定したファイルのプロジェクトからの相対パスを取得することができます

【Unity】NGUIのUISpriteをUIWidgetに置き換えるコンテキストメニューを追加するエディタ拡張

目次 概要

【Unity】Sceneビューのグリッドの表示をオフにするエディタ拡張

目次 概要 参考サイト様 [C#] unity3d Disable Grid - Pastebin.com 類似記事

【Unity】Sceneビューのすべてのアイコンの表示をオフにするエディタ拡張

目次 概要 参考サイト様 "Uncheck all" in Gizmos menu in Scene view? - Unity Answers 類似記事

【Unity】Sceneビューのすべてのギズモの表示をオフにするエディタ拡張

目次 概要 参考サイト様 "Uncheck all" in Gizmos menu in Scene view? - Unity Answers 類似記事

【Unity】メニュー付きの検索欄を表示するエディタ拡張

目次 概要 private string mText ; private int mSearchMode ; private void OnGUI() { var rect = new Rect( 0, 0, 200, 20 ); var searchModes = new []{ "ヒトカゲ", "リザード", "リザードン" }; mText = EditorGUIUtils.ToolbarSearchField( rect , mTe…

【Unity】検索欄を表示するエディタ拡張

目次 概要 private string mText; private void OnGUI() { mText = EditorGUIUtils.SearchField( new Rect( 0, 0, 100, 100 ), mText ); } 類似記事

【Unity】指定されたすべてのシーンファイルに対して一括で処理を行う汎用関数

using UnityEditor; using UnityEngine; public class ExampleClass { [MenuItem( "Tools/Example" )] static void Example() { var dirList = new [] { "Assets/Scenes", }; EditorUtils.ApplyToScenesByDirectoryList( dirList, c => { Debug.Log( c ); } …

【Unity】指定されたすべてのシーンファイルに対して一括で処理を行うエディタ拡張

目次 概要 dirList配列に対象のシーンファイルが格納されている ディレクトリのパスを記述する TODOコメントの場所に一括で行いたい処理を記述する

【Unity】「第32回代々木Unity勉強会」でエディタ拡張について発表させていただきました

「第32回代々木Unity勉強会」で エディタ拡張について発表させていただきました 発表資料をSlideShareに公開したので共有します 資料内容 エディタ拡張の基本 Hierarchy ビューの拡張 Project ビューの拡張 Scene ビューの拡張 参考アセット 関連記事

【Unity】Projectビューにファイル数を表示するエディタ拡張

目次 概要 類似記事

【Unity】Projectビューにエクスプローラでファイルを開くボタンを表示するエディタ拡張

目次 概要 類似記事

【Unity】Sceneビューにボタンを表示するエディタ拡張

目次 概要 類似記事

【Unity】Projectビューにアセットの容量を表示するエディタ拡張

目次 概要 参考サイト様 http://yas-hummingbird.blogspot.jp/2010/02/c.html 類似記事

【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】ノードベースのシェーダエディタ「Shader Forge」紹介

Asset Store 使用方法 Unityのメニューの「Window>ShaderForge」を選択 新規でシェーダーを作成する場合は「New Shader」を選択 既存のシェーダーを読み込んで編集する場合は「Load Shader」を選択 上記以外のボタンはWikiやfeedback center、ShaderForgeの…

【Unity】プログラム不要のシェーダ作成アセット「Shader Wizard - CG Shader Generator」紹介

Asset Store 概要 ウィンドウで設定したものをShaderファイルとして出力可能 頂点シェーダーやフラグメントシェーダー、サーフェイスシェーダーのベースとなるShaderファイルを出力可能 使用方法 Unityメニューの「Tools>ShaderWiz>Shader Wizard」を選択 「…

【Unity】6/23のUnityの勉強会で登壇させていただきます

【#TechBuzz】6/23 第32回代々木Unity勉強会【テーマ:Unity エディタ拡張でできること、Unity meets Kinect -Unity で NUI を扱ってみた-】 : ATND 対象者 Unity のエディタ拡張でどんなことができるのか知りたい方 発表内容(予定) エディタ拡張とは エディ…

【Unity】無料のシェーダエディタ「ShaderFusion」紹介

Asset Store 良かったところ 無料で使用できる オープンソースなので解析できる 気になったところ 「Shader Forge」や「Strumpy Shader Editor」と比べると少し使いづらい印象 検証時の画像 関連記事

【Unity】Unityエディタ内で作業可能なスクリプトエディタ「C# and Shader Intellisense」紹介

Asset Store 概要 C#のコードを記述する際にインテリセンスを表示してくれる (インテリセンスの機能自体はMonoDevelopの方が使いやすい印象) MonoDevelopの表示 C# and Shader Intellisenseの表示 Shaderコードを記述する際にインテリセンスを表示してく…

【Unity】無料のシェーダエディタ「Strumpy Shader Editor」紹介

Asset Store 良かったところ 無料で使用できる プログラマとしては、Node 名が Unity で用意されている 処理名と同じなので、Node を構築しやすい Vertex と Pixel、Lighting で処理がわかれている シェーダーの設定は ShaderForge とほとんど同じで、 なお…

【Unity】「PSD Layers to NGUI」を使用してみる

Asset Store 公式ドキュメント(英語) http://www.magicnreal.com/psd2ngui メニューについて Unityエディタ上で設定できる項目 ACTION 項目 説明 Load 設定の読み込み Save 設定の保存 Delete 設定の削除 New 設定の作成 Run NGUIへ変換 SETTING 項目 説明 R…

【Unity】EditorApplication.NewEmptySceneで空のシーンファイルを作成する

EditorApplication.NewEmptyScene(); EditorApplication.NewEmptySceneを使用することで オブジェクトが存在しない 空のシーンファイルを作成することができます

【Unity】EditorApplication.NewSceneで新しいシーンファイルを作成する

EditorApplication.NewScene(); EditorApplication.NewSceneを使用することで Main CameraとDirectional Lightが存在する 新しいシーンファイルを作成することができます

【Unity】「EditorApplication.currentScene」で現在開いているシーンの名前を取得する

using UnityEditor; using UnityEngine; public static class ExampleClass { [MenuItem( "Tools/Example" )] private static void Example() { Debug.Log( EditorApplication.currentScene ); } }

【Unity】EditorUtility.SaveFilePanelで名前を付けて保存するダイアログを表示する

var path = EditorUtility.SaveFilePanel( "", "", "", "" ); if ( !string.IsNullOrEmpty( path ) ) { ... } EditorUtility.SaveFilePanelを使用することで 名前を付けて保存するダイアログを表示することが可能です 引数 変数名 説明 title ダイアログに表…

【Unity】HierarchyにNGUIのUIWidgetのdepthを編集するGUIを表示するエディタ拡張

目次 概要 類似記事

【Unity】「AssetDatabase.GenerateUniqueAssetPath」で重複しないアセットのファイルパスを取得する

using UnityEditor; using UnityEngine; public static class ExampleClass { [MenuItem( "Tools/Example" )] private static void Example() { var path = "Assets/Prefabs/New Prefab.prefab"; Debug.Log( AssetDatabase.GenerateUniqueAssetPath( path ) …

【Unity】SerializedObjectを使用して指定されたオブジェクトのすべてのプロパティのパス名を抽出するエディタ拡張

目次 概要 上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加して 「Tools>SerializedObjectWindow」を選択すると次のウィンドウが表示されます ウィンドウの欄にオブジェクトをドラッグアンドドロップすると そのオブジェクトが持つシリア…

【Unity】ScriptableObjectのアセットを作成するエディタ拡張

目次 概要 類似記事

【Unity】ゲームオブジェクトやアセットを複製するエディタ拡張

目次 概要 Unity では Ctrl + D でゲームオブジェクトやアセットを複製することが可能です もしも複製処理を自前で実装したい場合は 下記のようなスクリプトを記述することで実現できます ゲームオブジェクトやアセットを選択した状態で Unity エディタのメ…

【Unity】ScriptableObjectを継承したすべてのアセットのInspectorの表示をカスタマイズするエディタ拡張

目次 概要 using UnityEngine; public sealed class PlayerSettings : ScriptableObject { public string Name; } using UnityEngine; public sealed class EnemySettings : ScriptableObject { public string Name; } 例えば ScriptableObject を継承したこ…

【Unity】Projectビューを一行おきに色を変えて見やすくするエディタ拡張

目次 概要 類似記事

【Unity】リフレクションを使用して指定されたクラスのすべてのメンバを抽出するエディタ拡張

目次 概要 上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加して 「Tools>Reflection Window」を選択すると次のウィンドウが表示されます ウィンドウのテキストボックスに名前空間を含むクラス名を入力すると そのクラスが持つすべてのメン…

【Unity】インポートされたFBXから自動でAnimationClipを取り出すエディタ拡張

目次 概要 上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加した状態で FBX を Unity プロジェクトに追加すると その FBX から AnimationClip を自動で取り出すことができます 既に Unity プロジェクトに追加されている FBX から Animation…