コガネブログ

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

【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)を削除した時 プロジェクトを保存した時 ビルドを開始した時

【Unity】AssemblyDefinitionAsset の References を名前順でソートする MenuItem を追加するエディタ拡張

リポジトリ 使用例 .asmdef やフォルダを選択した状態で右クリックして 「Kogane > Sort Assembly Definition References」を押すと 選択中の .asmdef や選択中のフォルダに含まれる すべての .asmdef の Assembly Definition References を 名前順でソート…

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

リポジトリ 使用例 Project Settings で Jenkins の情報を書き込むテキストファイルの保存場所や 書き込むテキストファイルのフォーマットを設定します "C:\Program Files\Unity\Hub\Editor\2022.1.11f1\Editor\Unity.exe" ^ -quit ^ -batchmode ^ -executeM…

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

リポジトリ 使用例 Project Settings で Git の情報を書き込むテキストファイルの保存場所や 書き込むテキストファイルのフォーマットを設定します using UnityEngine; public class Example : MonoBehaviour { private void Awake() { var textAsset = Reso…

【Unity】検索中は Project ウィンドウにアセットのフォルダ名を表示するエディタ拡張

リポジトリ 使用例

【Unity】Device Simulator にデバイスの情報を表示するエディタ拡張

リポジトリ 使用例

【Unity】Device Simulator の Control Panel にデバイスを変更するボタンを追加するエディタ拡張

リポジトリ 使用例

【Unity】Device Simulator にデバイスのブックマーク機能を追加するエディタ拡張

リポジトリ 使用例 「Add Bookmark」を押すと現在使用しているデバイスをブックマークできます ブックマークしたデバイスを選択すると即座にそのデバイスに切り替えられます

【Unity】マウスカーソルの場所に Tooltip を表示できるエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEditor; public static class Example { [MenuItem( "Assets/Hoge" )] public static void Hoge() { TooltipWindow.Open( "ピカチュウ" ); } }

【Unity】Console ウィンドウに検索ボタンを表示するエディタ拡張

リポジトリ 使用例 Console ウィンドウで検索したいテキストを Project Settings で設定します 項目 内容 Button Text ボタンに表示するテキスト Filtering Text ボタンを押した時に検索欄に入力するテキスト未入力ならボタンを押した時に Button Text に設…

【Unity】iOS ビルド時に Xcode プロジェクトの Product Name を変更するエディタ拡張

ソースコード #if UNITY_IOS using UnityEditor; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode; internal static class Example { [PostProcessBuild] private static void OnPostProcessBuild ( BuildTarget buildTarget, string pathToBuilt…