読者です 読者をやめる 読者になる 読者になる

コガネブログ

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

エディタ拡張

【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】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ビューのすべてのギズモの表示をオフにするエディタ拡張 - コガネブログ 【Unity】Sceneビューのすべてのアイコンの表示をオフにするエディタ拡張 - コガネブログ

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

参考サイト様 "Uncheck all" in Gizmos menu in Scene view? - Unity Answers 類似記事 【Unity】Sceneビューのすべてのギズモの表示をオフにするエディタ拡張 - コガネブログ 【Unity】Sceneビューのグリッドの表示をオフにするエディタ拡張 - コガネブログ

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

参考サイト様 "Uncheck all" in Gizmos menu in Scene view? - Unity Answers 類似記事 【Unity】Sceneビューのすべてのアイコンの表示をオフにするエディタ拡張 - コガネブログ 【Unity】Sceneビューのグリッドの表示をオフにするエディタ拡張 - コガネブロ…

【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 , mText , searc…

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

private string mText; private void OnGUI() { mText = EditorGUIUtils.SearchField( new Rect( 0, 0, 100, 100 ), mText ); } 類似記事 【Unity】メニュー付きの検索欄を表示するエディタ拡張 - コガネブログ

【Unity】「Starter City-Building Game Kit」を使用してみる

Asset Store https://www.assetstore.unity3d.com/jp/#!/content/32605 概要 クラッシュ・オブ・クランのような街作りゲームのスターターキット クラッシュ・オブ・クラン (Clash of Clans)Supercellゲーム無料 公式サイト http://www.citybuildingkit.com/j…

【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ビューにアセットの容量を表示するエディタ拡張 - コ…

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

類似記事 【Unity】Sceneビューにボタンを表示するエディタ拡張 - コガネブログ 【Unity】Projectビューにアセットの容量を表示するエディタ拡張 - コガネブログ 【Unity】HierarchyにNGUIのUIWidgetのdepthを編集するGUIを表示するエディタ拡張 - コガネブ…

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

類似記事 【Unity】Projectビューにアセットの容量を表示するエディタ拡張 - コガネブログ 【Unity】HierarchyにNGUIのUIWidgetのdepthを編集するGUIを表示するエディタ拡張 - コガネブログ 【Unity】SerializedObjectを使用して指定されたオブジェクトのす…

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

参考サイト様 http://yas-hummingbird.blogspot.jp/2010/02/c.html 類似記事 【Unity】HierarchyにNGUIのUIWidgetのdepthを編集するGUIを表示するエディタ拡張 - コガネブログ 【Unity】SerializedObjectを使用して指定されたオブジェクトのすべてのプロパテ…

【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」を使用してみる

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

【Unity】「Shader Wizard for Unity」を使用してみる

Asset Store https://www.assetstore.unity3d.com/jp/#!/content/29931 概要 ウィンドウで設定したものをShaderファイルとして出力可能 頂点シェーダーやフラグメントシェーダー、サーフェイスシェーダーのベースとなるShaderファイルを出力可能 使用方法 Un…

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

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

【Unity】「ShaderFusion」を使用してみる

良かったところ 無料で使用できる オープンソースなので解析できる 気になったところ 「Shader Forge」や「Strumpy Shader Editor」と比べると 少し使いづらい印象 検証時の画像 類似記事 【Unity】「C# and Shader Intellisense」を使用してみる - コガネ…

【Unity】「C# and Shader Intellisense」を使用してみる

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

【Unity】「Strumpy Shader Editor」を使用してみる

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

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

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

【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】Hierarchyを一行おきに色を変えて見やすくするエディタ拡張 - コガネブログ 【Unity】Hierarchyにゲームオブジェクトが持つコンポーネントの一覧を表示するエディタ拡張 - コガネブログ 【Unity】Hierarchyにゲームオブジェクトのアイコン…

【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】Projectビューを一行おきに色を変えて見やすくするエディタ拡張 - コガネブログ 【Unity】Projectビューでテクスチャを選択中にCtrl + Altキーでプレビューを表示するエディタ拡張 - コガネブログ 【Unity】Projectビューにアセットの拡張…

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

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

【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】Projectビューでテクスチャを選択中にCtrl + Altキーでプレビューを表示するエディタ拡張 - コガネブログ 【Unity】Hierarchyを一行おきに色を変えて見やすくするエディタ拡張 - コガネブログ 【Unity】Hierarchyにゲームオブジェクトが持…

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

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

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

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

【Unity】Projectビューでテクスチャを選択中にCtrl + Altキーでプレビューを表示するエディタ拡張

Project ビューでテクスチャを選択している時に Ctrl + Altキーを押すとプレビューを表示できます

【Unity】FBXからAnimationClipを取り出すエディタ拡張

上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加することで 例えばこのような FBX が Unity プロジェクトに存在する場合に 取り出したい AnimationClip を選択して右クリックし、 「Copy Animation Clip」を実行して FBX から AnimationCl…

【Unity】Sceneビューのカメラをクォータービューに変更するエディタ拡張

上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加すると Scene ビューの左上に「Quarter」ボタンが表示されます この「Quarter」ボタンを押すことで Scene ビューのカメラをクォータービューに変更できます 作成中のシーンを素早く俯瞰の視…

【Unity】OnGUIで表示するテキストの幅と高さをGUIStyleから取得する拡張メソッド

using UnityEditor; using UnityEngine; public sealed class ExampleClass : EditorWindow { [MenuItem( "Tools/Example" )] private static void Example() { GetWindow<ExampleClass>(); } private void OnGUI() { var text = "ピカチュウ" ; var size = EditorStyles.l</exampleclass>…