コガネブログ

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

【Unity】BuildPlayerWindow.RegisterBuildPlayerHandler で Build や Build And Run の動作を上書きできる

目次 目次 BuildPlayerWindow.RegisterBuildPlayerHandler BuildPlayerWindow.RegisterGetBuildPlayerOptionsHandler 参考サイト様 BuildPlayerWindow.RegisterBuildPlayerHandler 例えば、上記のようにログを出力するだけの OnBuildPlayer 関数を BuildPlay…

【Unity】EditorApplication.updateMainWindowTitle でエディタのタイトルを変えられる

使用例 Unity 2022 までは internal でアクセスできなかったが、 Unity 2023 からは public でアクセスできるようになった? 参考サイト様 https://docs.unity3d.com/ja/2023.2/ScriptReference/EditorApplication-updateMainWindowTitle.html

【Unity】TMP_Text.OnFontAssetRequest を使えば font タグで Resources を使わずに済む

使用例 デフォルトだと font タグで使用するフォントアセットは Resources/Fonts & Materials/ フォルダに入れておく必要があるが、 TMP_Text.OnFontAssetRequest を使うと font タグで使用する フォントアセットを自由に設定できるため Resources を使わず…

【Unity】Application.memoryUsageChanged でメモリの使用状況を検知できる

使用例 Unity 2022.2 から使用できるようになった iOS / Android / ユニバーサル Windows プラットフォームで使用できる 参考サイト様

【Python】フォルダ内のすべてのファイルの名前から特定の文字列を正規表現で削除する例

スクリプト

【Unity】「Multi-Process AssetBundle Building」でアセットバンドルのビルドを高速化

概要 Unity 2023.1 から、アセットバンドルをマルチプロセスでビルドできる 「Multi-Process AssetBundle Building」という機能が追加された Project Settings の「Editor > Multi-Process AssetBundle Building」をオンにすることで BuildPipeline.BuildAss…

【Unity】他のシーンのゲームオブジェクトの参照を Inspector で設定する方法

概要 上記のパッケージを Unity プロジェクトに追加すると 他のシーンのゲームオブジェクトの参照を Inspector で設定できるようになります 使い方 「Scene1」と「Scene2」という 2 つのシーンが存在しており、 Scene2 のゲームオブジェクトを Scene1 で参照…

【Unity】Android ビルドで Firebase Crashlytics が正常に動作しない場合

概要 using System; using UnityEngine; public class Example : MonoBehaviour { private void Update() { throw new Exception( "ライチュウ" ); } } Firebase Crashlytics を導入している Unity プロジェクトで Android で例外が発生しても Firebase コン…

【Unity】ArgumentException: GetComponent requires that the requested component 'GameObject' derives from MonoBehaviour or Component or is an interface.

概要 using UnityEngine; public class Example : MonoBehaviour { private void Start() { var go = gameObject.GetComponent<GameObject>(); } } 上記のようなコードを実行したら ArgumentException: GetComponent requires that the requested component 'GameObject'</gameobject>…

【Unity】Crashlytics.ReportUncaughtExceptionsAsFatal で、捕捉されなかった例外を「非致命的」ではなく「クラッシュ」として扱う

概要 using System; using UnityEngine; public class Hoge : MonoBehaviour { private void Update() { throw new Exception( "ピカチュウ" ); } } Firebase の Crashlytics では通常、try ~ catch で捕捉されなかった例外は 「非致命的」として扱われるが…

【Unity】Object.InstantiateAsync で複数のオブジェクトを同時に Instantiate する

使用例 1 using Cysharp.Threading.Tasks; using UnityEngine; public class Example : MonoBehaviour { [SerializeField] private GameObject m_original; private async UniTask Start() { var operation = InstantiateAsync( m_original, 10 ); // 10 個…

【Unity】Alt + 数字キーでシーンやアセットを開けるエディタ拡張

リポジトリ 使い方 Project Settings の「Kogane > Open Asset Shortcuts」を選択して シーンやアセットを設定することで、Alt + 数字キーで開けるようになります 補足 「Shortcut Conflict」が表示された場合は 「Kogane/Open Asset Shortcuts/Open Asset X…

【Unity】ローカル座標の距離が一番近いコンポーネントを検索して返す拡張メソッド

ソースコード /// <summary> /// ローカル座標の距離が一番近いコンポーネントを検索して返します /// </summary> public static T2 FindClosestByLocalPosition<T1, T2> ( this IReadOnlyList<T2> self, T1 component, float maxDistance ) where T1 : Component where T2 : Component { T2</t2></t1,>…

【Unity】GameObject.SetGameObjectsActive で複数のゲームオブジェクトのアクティブを一括で設定する

使用例

【Unity】Vector2 の配列やリストから指定した値に一番近い要素を取得する拡張メソッド

ソースコード