コガネブログ

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

2022-02-01から1ヶ月間の記事一覧

【Unity】Dictionary のキーにタプルや構造体を使う時のパフォーマンスを測定

ソースコード using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using NUnit.Framework; using Unity.PerformanceTesting; // Dictionary のキーにタプルと構造体を使用する時のパフォーマンスを測定するクラス pub…

【Unity】Profiler を Unity エディタとは別のプロセスで起動する方法

概要 Unity メニューの「Window > Analysis > Profiler (Standalone Process)」を選択して 確認ダイアログで「OK」を押すと Unity エディタとは別のスタンドアローンアプリとして Profiler を起動できます 参考サイト様

【Unity】Dictionary のキーに構造体を使う時のパフォーマンスを測定

ソースコード using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using NUnit.Framework; using Unity.PerformanceTesting; // Dictionary のキーに構造体を使用する時のパフォーマンスを測定するクラス public seal…

【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】自作コンポーネントの Inspector の表示名を日本語にする方法

概要 using UnityEngine; [AddComponentMenu( "【ここに日本語の名前】" )] public sealed class Example : MonoBehaviour { } AddComponentMenu で日本語の表示名を指定すると 自作コンポーネントの Inspector の表示名を日本語にできます

【Unity】Unity エディタが重い・Hold on や Unity is busy が長い時に試すこと 33 選

はじめに Unity エディタが重くて操作に時間がかかる時や Hold on・Unity is busy のプログレスバーが消えずに Unity が操作できない時に 自分が試して解決した方法や、 公式フォーラムなどでこうすると解決したと報告があった方法を紹介していきます 目次 …

【Unity】Wi-Fi で Android と接続してデバッグする方法

検証環境 Windows 10 Unity 2021.2.7f1 手順 Android で PC と同じ Wi-Fi に接続しておく Android の設定アプリを開いて「無線とネットワーク > Wi-Fi > 設定」を押して IP アドレスをメモしておく Android を PC に USB 接続する コマンドプロンプトを開い…

【Unity】StreamingAssets にファイルをコピーする時は .meta を一緒に作るとインポート時間を短縮できる

検証内容 10,000 個のファイルを StreamingAssets にコピーする時に [MenuItem( "Tools/Copy Files" )] private static void CopyFiles() { AssetDatabase.StartAssetEditing(); foreach ( var path in Directory.GetFiles( "Files" ) ) { var filename = Pa…

【Unity】ビルド前に現在開いているシーンを自動で保存する方法

概要 Preferences の左メニューで「General」を選択して 「Auto-save scenes before building」をオンにすると ビルド前に現在開いているシーンを自動で保存できる Unity 2022.1.0b2 で確認

【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】Windows IL2CPP ビルドした時に生成される XXXX_BackUpThisFolder_ButDontShipItWithYourGame はリリースビルドに含めなくていい

概要 https://docs.unity3d.com/ja/current/Manual/WindowsPlayerIL2CPPBuildProducedFiles.html a_BackUpThisFolder_ButDontShipItWithYourGame ゲームのデバッグに必要なデータを格納するフォルダー。 PDB (デバッグ情報) ファイルや、スクリプトから生成…

【Unity】UnityEditor.Selection.Internal_CallSelectionChanged で NullReferenceException

概要 NullReferenceException: Object reference not set to an instance of an object UnityEditor.PropertyEditor.DrawEditors (UnityEditor.Editor[] editors) (at <7ac35247888b44f4a7e290f1f6bb33f3>:0) UnityEditor.PropertyEditor.RebuildContentsCon…

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

リポジトリ 使用例

【Unity】Windows 向けにビルドした .exe のウィンドウのフレームをボーダーレスに変更できる機能「Kogane.ExeWindowFrameChanger」を GitHub で公開しました

リポジトリ 使用例 #if UNITY_EDITOR || UNITY_STANDALONE_WIN using Kogane; using UnityEngine; public class Example : MonoBehaviour { private void Update() { if ( Input.GetKeyDown( KeyCode.Z ) ) { ExeWindowFrameChanger.ChangeToBorderless(); }…

【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…