コガネブログ

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

【Unity】EditorGUIUtility.IconContent で使用できるアイコンを一覧で表示できる「UnityEditorIcons」紹介

はじめに 「UnityEditorIcons」を Unity プロジェクトに導入することで EditorGUIUtility.IconContent で使用できるアイコンを一覧で表示できるようになります 使用例 Unity メニューの「Tools > Editor Icons」を押すことで EditorGUIUtility.IconContent …

【Unity】EditorWindow 内にサブウィンドウを表示できる「UnitySubWindow」紹介

はじめに 「UnitySubWindow」を Unity プロジェクトに導入することで EditorWindow 内にサブウィンドウを表示できるようになります 使用例 using UnityEditor; using UnityEngine; internal sealed class Example : MDIEditorWindow { [MenuItem( "Tools/Hog…

【Unity】ゲーム実行中にコンポーネントのパラメータを EditorWindow に表示できる「PlayMode Inspector for Unity」紹介

はじめに 「PlayMode Inspector for Unity」を Unity プロジェクトに導入することで ゲーム実行中にコンポーネントのパラメータを EditorWindow に表示できるようになります 使用例 using Oddworm.Framework; using UnityEngine; internal sealed class Exam…

【Unity】シーンを開き直した時に前回の階層の状態を復元できる「Scene Keeper」紹介

はじめに 「Scene Keeper」を Unity プロジェクトに導入することで シーンを開き直した時に前回の階層の状態を復元できるようになります 使用例 通常ならシーンを開き直した時に階層がすべて閉じた状態になりますが 「Scene Keeper」を導入するとシーンを開…

【Unity】GUIStyle を ScriptableObject で確認しながら使用できる「Editor Styles Scriptable」紹介

はじめに 「Editor Styles Scriptable」を Unity プロジェクトに導入することで GUIStyle を ScriptableObject で確認しながら使用できるようになります 使用例 EditorStyleScriptable で使用したい GUIStyle を確認して using UnityEditor; using UnityEngi…

【Unity】エディタの各ウィンドウの最小サイズを 0, 0 にできる「Magic Layout」紹介

はじめに 「Magic Layout」を Unity プロジェクトに導入することで エディタの各ウィンドウの最小サイズを 0, 0 にできるようになります 使用例

【Unity】ゲームオブジェクトが持つコンポーネントの private な変数やプロパティの編集や関数の実行ができる「Sidekick Inspection Tools for Unity」紹介

はじめに 「Sidekick Inspection Tools for Unity」を Unity プロジェクトに導入することで ゲームオブジェクトが持つコンポーネントの private な変数やプロパティの編集や 関数の実行ができるようになります 使用例 using UnityEngine; internal sealed cl…

【Unity】Project ウィンドウに Git のステータスを表示できる「GitStatus」紹介

はじめに 「GitStatus」を Unity プロジェクトに導入することで Project ウィンドウに Git のステータスを表示できるようになります 使用例

【Unity】ディープリンクで Unity エディタのシーンを開いたりできる「Deeplink – Set up deep links into the Unity editor」紹介

はじめに 「Deeplink – Set up deep links into the Unity editor」を Unity プロジェクトに導入することで ディープリンクで Unity エディタのシーンを開いたりできるようになります 使用例 using Needle.Deeplink; using UnityEditor; using UnityEditor.S…

【Unity】Hierarchy にツリー構造の線を表示するエディタ拡張

ソースコード 使用例

【Unity】無料で Hierarchy を拡張できる「Smart Hierarchy for Unity」紹介

はじめに 「Smart Hierarchy for Unity」を Unity プロジェクトに導入することで 無料で Hierarchy を拡張できます 使用例 各ゲームオブジェクトのアイコンがコンポーネントのアイコンに変化します マウスカーソルを合わせているゲームオブジェクトに アクテ…

【Unity】無料で Hierarchy を拡張できる「Hierarchy 2」紹介

はじめに 「Hierarchy 2」を Unity プロジェクトに導入することで 無料で Hierarchy を拡張できます 使用例 Hierarchy にタグやレイヤー、コンポーネントの情報が表示されます タグやレイヤー、コンポーネントを右クリックすると編集できます Project Settin…

【Unity】Inspector に表示するコンポーネントを選択できるようになる「Smart Inspector」紹介

はじめに 「Smart Inspector」を Unity プロジェクトに導入することで Inspector に表示するコンポーネントを選択できるようになります 使用例 このように Inspector に表示するコンポーネントを選択できます また、UnityEvent の表示がデフォルトで閉じた状…

【Unity】エディタ拡張でビルドに失敗した時にも呼び出されるコールバックを実装する方法

概要 using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEngine; public class Test : IPreprocessBuildWithReport { public int callbackOrder => 0; public void OnPreprocessBuild( BuildReport report ) { vo…

【Unity】エディタの再生やコンパイルにかかった時間を Scene ビューや Game ビューに通知で表示できる「Mini Editor Iteration Profiler for Unity」紹介

はじめに 「Mini Editor Iteration Profiler for Unity」を Unity プロジェクトに導入することで Unity エディタの再生やコンパイルにかかった時間を Scene ビューや Game ビューに通知で表示できるようになります 使用例

【Unity】各アセンブリのコンパイルにかかった時間を確認できる「Unity Assemblies Debugger」紹介

はじめに 「Unity Assemblies Debugger」を Unity プロジェクトに導入することで 各アセンブリのコンパイルにかかった時間を確認できるようになります 使い方 Unity メニューの「Window > Assemblies Debugger」を選択すると 各アセンブリのコンパイルにかか…

【Unity】簡単にサブアセットを登録できる「Sub Asset Editor」紹介

はじめに 「Sub Asset Editor」を Unity プロジェクトに導入することで 簡単にサブアセットを登録できるようになります クイックスタート Unity メニューの「Assets > Sub Asset Editor」を選択します 「Sub Asset」ウィンドウが表示されたら サブアセットを…

【Unity】シーンを保存した時にそのシーンが使用しているすべての SpriteAtlas の参照を自動で保持するコンポーネント「UniSpriteAtlasReferencer」を GitHub に公開しました

リポジトリ 使い方 シーンに存在するゲームオブジェクトに「SpriteAtlasReferencer」します これで、シーンを保存した時にそのシーンが使用しているすべての SpriteAtlas の参照が 「SpriteAtlasReferencer」に自動で保持されるようになります シーンをアセ…

【Unity】エディタの現在のプラットフォームが適切ではない場合にログを出力するエディタ拡張「UniPlatformChecker」を GitHub に公開しました

リポジトリ 使い方 Unity の Project Settings を開いて「Kogane > UniPlatformChecker」を選択して 「Build Target Groups」に適切なプラットフォームを設定します もしも Unity エディタのプラットフォームが設定したプラットフォームではない場合は Unity…

【Unity】エディタで使用されているスタイルシート(.uss)をエクスポートするエディタ拡張「UniStyleSheetExporter」を GitHub に公開しました

リポジトリ 実装環境 Unity 2020.2.0b2 使い方 Unity メニューの「Edit > UniStyleSheetExporter > Export」を選択すると エディタで使用されているスタイルシート(.uss)をエクスポートできます

【Unity】すべてのシーンに対して処理を行うクラス「UniSceneProcessor」を GitHub に公開しました

リポジトリ 使用例 すべてのシーンに対して処理を行う using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { SceneProcessor.ProcessAllScenes ( scene => { // シ…

【Unity】すべてのシーンやプレハブに存在するすべてのゲームオブジェクトに対して処理を行うクラス「UniGameObjectProcessor」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Example { /// <summary> /// すべてのシーンに存在するゲームオブジェクトに BoxCollider をアタッチします /// </summary> [MenuItem( "Tools/Add BoxCollider to Scene" )] priv…

【Unity】Selection 型に関係する汎用的な関数を管理するクラス「UniSelectionUtils」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public class Example { [MenuItem("Tools/Hoge")] private static void Hoge() { // Project ビューで選択されているフォルダと、 // そのフォルダ内のすべてのサブフォルダのパス…

【Unity】EditorUtility.DisplayDialog に関する記述を短く書けるようにするクラス「UniEditorDialog」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; public class Example { private static readonly EditorDialog m_editorDialog = new EditorDialog( "【ここにタイトル】" ); [MenuItem( "Tools/Hoge" )] private static void Hoge() { // OK ダイア…

【Unity】Inspector で参照を設定されている ScriptableObject の情報をインラインで表示できる「ExtendedScriptableObjectDrawer.cs」紹介

ソースコード(引用) 使用例 前述のソースコードを Unity プロジェクトに追加すると Inspector の ScriptableObject の欄に、設定されている ScriptableObject の情報がインラインで表示されるようになります ScriptableObject が設定されていない場合は「C…

【Unity】クリップボードにコピーされているパスを含むアセットを Project ビューでハイライトするエディタ拡張

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { EditorApplication.projectWindowItemOnGUI += OnGUI; } private static void OnGUI( string guid, Rect selectionRect ) { var path = A…

【Unity】エディタ拡張で Inspector の最大化を切り替える方法

ソースコード using System; using UnityEditor; using UnityEngine; public sealed class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var windows = Resources.FindObjectsOfTypeAll<EditorWindow>(); var inspectorWindow = Array.Find( window</editorwindow>…

【Unity】エディタ拡張で Add Component のようなドロップダウンメニューを実装できる「AdvancedDropdown」

使用例 using System; using UnityEditor; using UnityEditor.IMGUI.Controls; using UnityEngine; class WeekdaysDropdown : AdvancedDropdown { public event Action<AdvancedDropdownItem> OnSelect; public WeekdaysDropdown( AdvancedDropdownState state ) : base( state ) {</advanceddropdownitem>…

【Unity】エディタ拡張でプロジェクト外のスクリプトをコンパイルできる「AssemblyBuilder」

ソースコード using System.IO; using System.Linq; using UnityEditor; using UnityEditor.Compilation; using UnityEngine; public static class AssembyBuilderExample { [MenuItem( "AssemblyBuilder Example/Build Assembly Async" )] public static vo…

【Unity】Unity のインストール先のフォルダを開くエディタ拡張

ソースコード using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var path = EditorApplication.applicationPath; EditorUtility.RevealInFinder( path ); } }