コガネブログ

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

2019-03-25から1日間の記事一覧

【雑記】Nintendo Switch の「お客様が選ぶ!ダウンロード専用ソフト おすすめランキング3月号」で「ガブッチ」が6位に選ばれました!

概要 Nintendo Switch の「お客様が選ぶ!ダウンロード専用ソフト おすすめランキング3月号」で「ガブッチ」が6位に選ばれました! ランダムなアンケートによる結果とのことで、とても嬉しいです。励みになります

【Unity】意図的に強制終了できる「UnityEngine.Diagnostics.Utils.ForceCrash」

概要 using UnityEngine; using UnityEngine.Diagnostics; public class Example : MonoBehaviour { private void Update() { if ( Input.GetKeyDown( KeyCode.Space ) ) { Utils.ForceCrash( ForcedCrashCategory.AccessViolation ); } } } UnityEngine.Dia…

【Unity】GC が何回発生したか計測する自作クラス

ソースコード 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { var watcher = new GCWatcher(); watcher.Start(); for ( int i = 0; i < 10000; i++ ) { Debug.Log( "【計測したい処理】" ); } watcher.Stop(); D…

【Unity】String Interpolation を使用した場合と string.Format を使用した場合の GC Alloc は同じ

概要 using UnityEngine; using UnityEngine.Profiling; public class Example : MonoBehaviour { private CustomSampler m_sampler1; private CustomSampler m_sampler2; private CustomSampler m_sampler3; private CustomSampler m_sampler4; private voi…

【Unity】Unity 2018.3.7 だと何もしていなくても毎フレーム 17B の GC Alloc が発生する

概要 Unity 2018.3.7 だと何もしていなくても毎フレーム 17B の GC Alloc が発生する Unity 2018.3.8 以上にアップデートすると直る 参考サイト様 https://forum.unity.com/threads/tickrealtimeprobes-causes-gc-allocs-every-frame-even-with-no-reflectio…

【Unity】GC が発生したかどうかをイベントで検知できる独自クラス

ソースコード 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { GCEvent.Initialize(); GCEvent.mOnCollect += OnCollect; } private void OnDestroy() { GCEvent.mOnCollect -= OnCollect; } private void OnColl…

【Unity】「UGUI Super ScrollView」で1つのプレハブしか使わない場合はスクロールバーの大きさを固定したかった

はじめに 「UGUI Super ScrollView」はいろんなスクロールビューが 簡単に実装できるのでとても好きなのですが、 スクロールするたびにスクロールバーがカクカクするのが気になっていました おそらくスクロールビューに含まれる要素の大きさが可変でも 問題…

【Unity】エディタ拡張において Unity プロジェクト内から指定した型の ScriptableObject を取得する方法

概要 例えば HogeSettings という名前の ScriptableObject を取得したい場合 var settings = AssetDatabase .FindAssets( "t:HogeSettings" ) .Select( c => AssetDatabase.GUIDToAssetPath( c ) ) .Select( c => AssetDatabase.LoadAssetAtPath<HogeSettings>( c ) ) .Fir</hogesettings>…

【Unity】マネージドプラグインやネイティブプラグインの設定をスクリプトから変更できる「PluginImporter」

概要 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var obj = Selection.activeObject; var path = AssetDatabase.GetAssetPath( obj ); var importer = AssetImporter.GetAtPath( path ) as…

【Unity】Missing Prefab かどうか確認する方法

概要 using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var go = Selection.activeGameObject; var status = PrefabUtility.GetPrefabInstanceStatus( go ); var isMissing =…

【Unity】Animator Controller のいずれかのステートの Motion が null になっている場合に true を返す拡張メソッド

概要 using System.Linq; using UnityEditor.Animations; public static class AnimatorControllerExt { public static bool HasNullMotion( this AnimatorController self ) { foreach ( var n in self.layers ) { if ( n.stateMachine.states.Any( c => c.…

【Unity】Unity Test Runner で EditMode 用のテストスクリプトを準備する方法

方法1 Unity プロジェクトの「Editor」フォルダを右クリックして 「Create > Testing C# Test Script」を選択すると EditMode 用のテストスクリプトを準備できる 方法2 「Test Runner」ウィンドウで「Create EditMode Test Assembly Folder」を選択してから …

【Unity】2D のシーンで Skybox Material が設定されていないかどうかテストできるコード

概要 2D のシーンで Skybox Material が設定されていないかどうかテストできます

【Unity】Animator Controller の Motion が null になっていないかどうかテストできるコード

概要 Animator Controller の中のいずれかのステートの Motion が null になっていないかどうかテストできます

【Unity】Audio Listener が複数存在しないかどうかテストできるコード

概要 Unity 標準のオーディオ機能を使用しているプロジェクトで Audio Listener が1つのシーンに複数存在しないかどうかテストできます

【Unity】iOS 用のプラグインの対象プラットフォームが適切かどうかテストできるコード

概要 「Plugins」フォルダ内の「iOS」フォルダに含まれているプラグインの 対象プラットフォームに Android が設定されていないかどうかテストできます 参考サイト様

【Unity】Android 用のプラグインの対象プラットフォームが適切かどうかテストできるコード

概要 「Plugins」フォルダ内の「Android」フォルダに含まれているプラグインの 対象プラットフォームに iOS が設定されていないかどうかテストできます 参考サイト様

【Unity】2D のシーンで Global Illumination が無効になっているかどうかテストできるコード

概要 2D のシーンで Global Illumination の機能が 無効になっているかどうかテストできます 関連記事

【Unity】モバイル用のシェーダがマテリアルに設定されているかどうかテストできるコード

概要 Unity 標準の軽量なモバイルシェーダに置き換えられるシェーダが 使用されているマテリアルが存在しないかどうかテストできます 参考サイト様

【Unity】加速度センサーが無効になっているかどうかテストできるコード

概要 加速度センサーを使用しないプロジェクトにおいて 加速度センサーが無効になっているかテストできます 関連記事

【Unity】「Unity AssetBundle 完全に理解した」資料などまとめ

イベントページ 動画 資料 お前はまだ本当のAssetBundleを知らない ごっこランドを支える技術 〜AssetBundle 編〜 誰もAddressableを語らないのなら…俺が語るしかないッ AssetBundleダウンロードサイズ表示対応 サーバ無しでAssetBundleを使う 複数プロジェ…

【Unity】Unity Test Runner で実行できる汎用的なテストを 20 個以上まとめた「UniCommonTestRunner」を GitHub に公開しました

はじめに Unity Test Runner で実行できる汎用的なテストを 20 個以上まとめた 「UniCommonTestRunner」を GitHub に公開しました 目次 はじめに 目次 バージョン 使い方 実行できるテストの種類 加速度センサーが無効になっているか Android 用のプラグイン…