コガネブログ

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

【Unity】バッチモードでビルドするシェルスクリプトのテンプレートをクリップボードにコピーするスクリプト

ソースコード using UnityEditor; using UnityEngine; namespace Kogane.Internal { internal static class CopyBatchModeScriptTemplateMenuItem { [MenuItem( "Kogane/バッチモードでビルドするシェルスクリプトのテンプレートをコピー" )] private static…

【Unity】ProjectSettings.asset のバックアップと復元を行うクラス

リポジトリ 使用例 using System.Linq; using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { const BuildTargetGroup buildTargetGroup = BuildTargetGroup.Standa…

【Unity】デバッグ用のシーンを Scenes In Build のリストの末尾に移動するエディタ拡張

リポジトリ 使用例 デバッグ用のシーンが格納されているフォルダのパスを Project Settings で「Path Array」に設定すると Scenes In Build にシーンを追加した時にデバッグ用のシーンが リストの末尾に自動で移動するようになります また、先頭以外のシーン…

【Unity】プレハブモードで開いているプレハブを Project ウィンドウでハイライトするエディタ拡張

リポジトリ 使用例 Project Settings で「Is Enable」をオンにすると プレハブモードで開いているプレハブが Project ウィンドウでハイライトされるようになります

【Unity】SortingLayerEditorUtility クラスの internal な機能にアクセスできる機能

リポジトリ 使用例 using System; using UnityEditor; using UnityEngine; namespace Kogane.Internal { [CustomEditor( typeof( MeshRenderer ) )] internal sealed class MeshRendererInspector : Editor { private Editor m_editor; private SerializedPr…

【Unity】ScriptableSingleton の拡張メソッド

リポジトリ 使用例 // protected な Save 関数を public で呼び出せるようにする拡張メソッド scriptableSingleton.Save( true );

【Unity】Unity エディタのフォントサイズを変更できる「EditorFontSize」紹介

はじめに https://gist.github.com/nukadelic/47474c7e5d4ee5909462e3b900f4cb82 「EditorFontSize」を Unity プロジェクトに導入することで Unity エディタのフォントサイズを変更できるようになります 使用例

【Unity】エディタのツールバーとステータスバーを非表示にできる「Editor-View-Modules」紹介

概要 「Editor-View-Modules」を Unity プロジェクトに導入することで エディタのツールバーとステータスバーを非表示にできるようになります 使い方 Unity メニューの「View > Toolbars」の項目を選択すると エディタのツールバーとステータスバーを非表示…

【Unity】ゲームオブジェクトが依存しているアセットを確認できる「WhatUsesThisInScene」紹介

概要 「WhatUsesThisInScene」を Unity プロジェクトに導入することで ゲームオブジェクトが依存しているアセットを確認できるようになります 使い方 Hierarchy でゲームオブジェクトを右クリックして 「What uses this in the scene?」を選択すると ゲーム…

【Unity】ドッキングされた EditorWindow で minSize が正常に動作するようにするエディタ拡張

リポジトリ 導入前 導入後

【Unity】GvhProjectSettings.xml が勝手に変更される現象を防ぐエディタ拡張

リポジトリ 使用例 ProjectSettings フォルダに 「GvhProjectSettings.xml.source」というファイルを格納することで コンパイル開始時や Unity エディタがフォーカスされた時に 「GvhProjectSettings.xml.source」を「GvhProjectSettings.xml」に上書きコピ…

【Unity】シーンの Dirty フラグが立った原因を調査できるエディタ拡張

リポジトリ 使用例 Project Settings で「Is Enable」をオンにすると シーンの Dirty フラグが立った原因が Console ウィンドウに出力されるようになります

【Unity】AudioClip の無音区間を削除できるエディタ拡張

リポジトリ 準備 本パッケージを使用するためには Python のインストールと 以下の Python パッケージのインストールが必要です pip install librosa pip install soundfile 使用例 using Kogane; using UnityEditor; public static class Example { [MenuIt…

【Unity】Unity 再生中にスクリプトの変更を反映できる「Fast Script Reload」紹介

はじめに 「Fast Script Reload」を Unity プロジェクトに導入することで Unity 再生中にスクリプトの変更を反映できる(ホットリロードできる)ようになります 使い方 導入時に上記のダイアログが表示されたら「OK」を押して Auto Refresh を無効にします …

【Unity】インポートしたアセットに警告やエラーを設定する方法

概要 using UnityEditor; public class Example : AssetPostprocessor { private void OnPreprocessTexture() { if ( !assetPath.StartsWith( "Assets/" ) ) return; // 警告を設定 context.LogImportWarning( "ピカチュウ", context.mainObject ); // エラ…

【Unity】ShaderGraph のスクリーンショットを保存できる「Shader Graph to PNG」紹介

概要 「Shader Graph to PNG」を Unity プロジェクトに導入することで ShaderGraph のスクリーンショットを保存できるようになります 使い方 ShaderGraph のウィンドウを右クリックして「Graph To PNG」を押すと 「Assets/ShaderGraphScreenshots」にスクリ…

【Unity】Package Manager ですべてのバージョンを見られるようにする「FixPackageManagerSeeAllVersions」紹介

概要 「FixPackageManagerSeeAllVersions」を Unity プロジェクトに導入することで Package Manager ですべてのバージョンを見られるようになります 導入前 導入後 Project Settings の「Player > See All Versions」をオンにすると Package Manager に「See…

【Unity】ANDROID_HOME を環境変数に設定するクラス

リポジトリ 使用例 using System; using Kogane; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { SetAndroidHomeToEnvironmentVariable.Set( EnvironmentVariableTarget.Process ); } }

【Unity】iOS ビルド完了時に Xcode プロジェクトのプッシュ通知を有効化するエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEditor; [InitializeOnLoad] public static class Example { static Example() { // 開発ビルドかリリースビルドか設定します SetXcodePushNotificationOnPostProcessBuild.OnIsProduction = () => false; } }

【Unity】Play Asset Delivery を使用している Android App Bundle を Android 端末にインストールできるクラス

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { var data = new InstallPlayAssetDeliveryAndroidAppBundleData ( androidAppBundlePath: …

【Unity】Project ウィンドウに拡張子を表示するエディタ拡張

リポジトリ 使用例

【Unity】ビルド時に BuildPlayerOptions の情報を Resources フォルダのテキストファイルに書き込むエディタ拡張

リポジトリ 使用例 using System.Linq; using Kogane; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { const bool isReleaseBuild = false; var options = new BuildPlayerOptions { scenes = E…

【Unity】ツールバーに Reload Assemblies をロックするかどうかを変更するボタンを追加するエディタ拡張

リポジトリ 使用例

【Unity】Device Simulator の internal な機能にアクセスできるパッケージ

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Device Simulator で選択されているデバイスの名前を取得します Debug.Log( DeviceSim…

【Unity】配列やリストの None な要素をすべて削除できるエディタ拡張

リポジトリ 使用例

【Unity】コンポーネントをアタッチした時にゲームオブジェクトの名前をコンポーネント名にリネームするエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEngine; [RenameGameObject] public sealed class Example : MonoBehaviour { }

【Unity】プレハブモードを開く時に Hierarchy の検索欄を保持するエディタ拡張

リポジトリ 使用例

【Unity】Inspector の Script の欄を有効にするエディタ拡張

リポジトリ 使用例

【Unity】コンポーネントの位置を指定したコンポーネントの上か下に自動で移動するエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEngine; [MoveComponentUp( typeof( Rigidbody2D ) )] public sealed class Example : MonoBehaviour { } using Kogane; using UnityEngine; [MoveComponentDown( typeof( Rigidbody2D ) )] public sealed class…

【Unity】Build Settings の Scenes In Build から Deleted なシーンを自動で削除するエディタ拡張

リポジトリ 使用例 以下のタイミングで Build Settings の Scenes In Build から Deleted なシーンを自動で削除します シーンファイル(.unity)を削除した時 プロジェクトを保存した時 ビルドを開始した時