コガネブログ

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

【Unity】エディタのツールバーに独自のボタンを追加できる「unity-toolbar-buttons」紹介

はじめに 「unity-toolbar-buttons」を Unity プロジェクトに導入することで エディタのツールバーに独自のボタンを追加できるようになります 導入後 デフォルトでツールバーにいくつかのボタンが追加されます シーンを開けるボタンや Project Settings や P…

【Unity】UPM のパッケージを .unitypackage にエクスポートできる「UPM Packages in .unitypackage files」紹介

はじめに 「UPM Packages in .unitypackage files」を Unity プロジェクトに導入することで UPM のパッケージを .unitypackage にエクスポートできるようになります 使用例 UPM のパッケージを選択して Unity メニューの「Assets > Export Package...」を押…

【Unity】Inspector の UnityEvent の表示がコンパクトになり検索もできる「Searchable Event Drawer」紹介

はじめに 「Searchable Event Drawer」を Unity プロジェクトに導入することで Inspector の UnityEvent の表示がコンパクトになり検索もできるようになります 導入前 導入後

【Unity】Inspector の UnityEvent の表示をコンパクトにできる「Compact-Unity-Events」紹介

はじめに 「Compact-Unity-Events」を Unity プロジェクトに導入することで Inspector の UnityEvent の表示をコンパクトにできます 導入前 導入後

【Unity】エディタをボーダーレスにできるエディタ拡張「Borderless-Unity」紹介

はじめに 「Borderless-Unity」を Unity プロジェクトに導入することで エディタをボーダーレスにできようになります 使用例

【Unity】Preset の Excluded Properties を昇順に並べ替えるエディタ拡張

概要 Preset を右クリックして「Exclude all properties」を押すと プロパティが除外設定に登録されるが順番に規則性がないため 除外設定を解除したいプロパティを探すのが大変だった using System.Linq; using UnityEditor; using UnityEditor.Presets; pub…

【Unity】エディタ拡張から Undo / Redo を実行する方法

概要 using UnityEditor; public static class Example { [MenuItem( "Tools/Undo" )] private static void RunUndo() { Undo.PerformUndo(); } [MenuItem( "Tools/Redo" )] private static void RunRedo() { Undo.PerformRedo(); } } Undo.PerformUndo() や…

【Unity】Project ウィンドウのフォルダのアイコンを変更できる「SimpleFolderIcon」紹介

はじめに 「SimpleFolderIcon」を Unity プロジェクトに導入することで Project ウィンドウのフォルダのアイコンを変更できるようになります 使用例 SimpleFolderIcon を Unity プロジェクトに導入するだけで いくつかのフォルダのアイコンが自動で変化する…

【Unity】PlayableDirector をリスタートするエディタ拡張

ソースコード using UnityEditor; using UnityEngine.Playables; public static class PlayableDirectorMenuItem { [MenuItem( "CONTEXT/" + nameof( PlayableDirector ) + "/" + nameof( Restart ) )] public static void Restart( MenuCommand command ) {…

【Unity】PlayableDirector の Inspector に Timeline ウィンドウを開くボタンを追加するエディタ拡張

ソースコード using System; using UnityEditor; using UnityEngine; using UnityEngine.Playables; [CustomEditor( typeof( PlayableDirector ) )] public sealed class PlayableDirectorInspector : Editor { private static readonly Type BASE_EDITOR_TY…

【Unity】Animator の Inspector に Animator ウィンドウを開くボタンを追加するエディタ拡張

ソースコード using System; using UnityEditor; using UnityEngine; [CustomEditor( typeof( Animator ) )] public sealed class AnimatorInspector : Editor { private static readonly Type BASE_EDITOR_TYPE = typeof( Editor ) .Assembly .GetType( "Un…

【Unity】Animation の Inspector に Animation ウィンドウを開くボタンを追加するエディタ拡張

ソースコード using System; using UnityEditor; using UnityEngine; [CustomEditor( typeof( Animation ) )] public sealed class AnimationInspector : Editor { private static readonly Type BASE_EDITOR_TYPE = typeof( Editor ) .Assembly .GetType( "…

【Unity】Inspector のヘッダにアセットの GUID を表示するエディタ拡張

ソースコード using UnityEditor; [InitializeOnLoad] public static class InspectorHeaderGUI { static InspectorHeaderGUI() { Editor.finishedDefaultHeaderGUI -= OnGUI; Editor.finishedDefaultHeaderGUI += OnGUI; } private static void OnGUI( Edit…

【Unity】ContentSizeFitter の Inspector に FitMode を変更するボタンを追加するエディタ拡張

ソースコード using System; using UnityEditor; using UnityEditor.UI; using UnityEngine; using UnityEngine.UI; [CustomEditor( typeof( ContentSizeFitter ) )] public sealed class ContentSizeFitterInspector : Editor { private static readonly Ty…

【Unity】Package Manager でインストールしたパッケージを埋め込みパッケージにするエディタ拡張

概要 https://gist.github.com/liortal53/111ee2a659b0d59c80faab0f5d457531?permalink_comment_id=3758173#gistcomment-3758173 上記のページのコメント欄で紹介されているエディタ拡張を Unity プロジェクトに導入すると Project ビューでパッケージを右ク…

【Unity】ParticleSystem の Inspector に Play・Pause などのボタンを追加するエディタ拡張

ソースコード using System; using UnityEditor; using UnityEngine; [CustomEditor( typeof( ParticleSystem ) )] public sealed class ParticleSystemInspector : Editor { private static readonly Type BASE_EDITOR_TYPE = typeof( Editor ) .Assembly .…

【Unity】PlayableDirector の Inspector に Play・Pause などのボタンを追加するエディタ拡張

ソースコード using System; using UnityEditor; using UnityEngine; using UnityEngine.Playables; [CustomEditor( typeof( PlayableDirector ) )] public sealed class PlayableDirectorInspector : Editor { private static readonly Type BASE_EDITOR_TY…

【Unity】Game ビューをフルスクリーンにするエディタ拡張

概要 https://gist.github.com/Chillu1/4c209308dc81104776718b1735c639f7 上記のサイト様で紹介されているエディタ拡張を Unity プロジェクトに追加すると Unity を再生した時に Game ビューがフルスクリーンになります もしくは Unity メニューの「Window …

【Unity】Windows ビルドした時に Steamworks.NET.txt を自動で削除するエディタ拡張

ソースコード using System.IO; using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; public sealed class SteamworksNetTxtDeleter : IPostprocessBuildWithReport { public int callbackOrder => 0; public void OnPostproce…

【Unity】Windows IL2CPP ビルドした時に生成される XXXX_BackUpThisFolder_ButDontShipItWithYourGame を自動で削除するエディタ拡張

ソースコード using System.IO; using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; public sealed class WindowsIL2CPPBuildBackUpThisFolderDeleter : IPostprocessBuildWithReport { public int callbackOrder => 0; publi…

【Unity】選択したアセットと同じ種類のアセットを Project ウィンドウで検索できるエディタ拡張「Kogane.FindTypeInProject」を GitHub で公開しました

リポジトリ 使用例

【Unity】Build Settings の設定(BuildPlayerOptions)をスクリプトから取得する方法

概要 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { var defaultBuildPlayerOptions = new BuildPlayerOptions(); var options = BuildPlayerWindow.DefaultBuildMethods .GetBuildPlayerOptio…

【Unity】TextMeshPro の FontAsset をスクリプトから更新するエディタ拡張「Kogane TMP_FontAsset Updater」を GitHub に公開しました

リポジトリ 開発環境 Windows 10 Unity 2021.2.7f1 TextMeshPro 3.0.6 基本的な使い方 using Kogane.TMP_FontAssetUpdater; using TMPro; using UnityEditor; using UnityEngine; using UnityEngine.TextCore.LowLevel; public static class Example { [Menu…

【Unity】EditorGUILayout.TextArea で範囲内に収まりきらない文字を自動改行する方法

概要 using UnityEditor; using UnityEngine; public sealed class Example : EditorWindow { private string m_text; [MenuItem( "Tools/Open" )] private static void Open() { GetWindow<Example>(); } private void OnGUI() { var style = new GUIStyle( EditorSt</example>…

【Unity】エディタ拡張で Project Template を保存する関数

ソースコード using System.Reflection; using UnityEditor; using UnityEngine.Assertions; public static class EditorUtilityInternal { public static void SaveProjectAsTemplate ( string targetPath, string name, string displayName, string descri…

【Unity】アセットの依存関係を調査できる「Dependencies Hunter Unity3D Tool」紹介

はじめに 「Dependencies Hunter Unity3D Tool」を Unity プロジェクトに導入することで アセットの依存関係を調査できるようになります クイックスタート 依存関係を調査したいアセットを右クリックして 「Find References in Project」を押して しばらく待…

【Unity】アセットの依存関係を調査できる「Asset Lens」紹介

はじめに 「Asset Lens」を Unity プロジェクトに導入することで アセットの依存関係を調査できるようになります クイックスタート 「Index Wizard」ウィンドウで「Generate」を押すと 依存関係の調査が始まるのでしばらく待ちます 調査が完了したら依存関係…

【Unity】コンパイル時間や再生までにかかった時間を閲覧できる「Mini Editor Iteration Profiler for Unity」紹介

はじめに 「Mini Editor Iteration Profiler for Unity」を Unity プロジェクトに導入することで コンパイル時間や再生までにかかった時間を閲覧できるようになります 使用例 コンパイルが完了した時に Scene ビューと Game ビューに コンパイルにかかった時…

【Unity】選択した Package を Assets フォルダに移動するエディタ拡張「Kogane Package To Asset」を GitHub に公開しました

リポジトリ 使用例 使い方 Assets フォルダに移動したい Package を右クリックして「Package to Asset」からコマンドを選択します 項目 内容 Including Dependencies 依存関係も含めて選択された Package を Assets フォルダに移動 Excluding Dependencies …

【Unity】ホットキーでシーンを開けるようになる「Hotkey Scenes Switcher」紹介

はじめに 「Hotkey Scenes Switcher」を Unity プロジェクトに導入することで ホットキーでシーンを開けるようになります クイックスタート Unity メニューの「Tools > NMJ > SceneManager > Hotkeys > Edit」を選択して ホットキーで開きたいシーンを設定す…