コガネブログ

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

【Unity】見下ろし型の 2D ゲームでプレイヤーが上下左右どの向きに移動したか取得する例

スクリプト

【Unity】IFilterBuildAssemblies でビルドから .dll を除外する

使用例 参考サイト様

【Unity】UnityException: XXXX is not allowed to be called during serialization, call it from Awake or Start instead. Called from MonoBehaviour 'YYYY' on game object 'ZZZZ'.

概要 UnityException: XXXX is not allowed to be called during serialization, call it from Awake or Start instead. Called from MonoBehaviour 'YYYY' on game object 'ZZZZ'. Unity エディタでコンパイルが完了した時に 上記の例外が発生する現象に遭…

【Unity】InvalidOperationException: Token version is not matched, can not await twice or get Status after await.

概要 using Cysharp.Threading.Tasks; using UnityEngine; public class Example : MonoBehaviour { private async UniTask Start() { var task = UniTask.NextFrame(); await task; await task; } } 1 つの UniTask のインスタンスを 2 回以上 await すると…

【Unity】BuildPlayerProcessor.PrepareForBuild でビルド前に StreamingAssets にファイルやフォルダを追加する

概要 BuildPlayerProcessor.PrepareForBuild を使用すると、ビルド前に以下のことができる ビルドに使用された BuildPlayerOptions を取得 StreamingAssets にファイルやフォルダを追加 参考サイト様

【Unity】InvalidOperationException: Could not execute the method because the containing type 'XXXX', is not fully instantiated.

概要 public static class Example<T> { #if UNITY_EDITOR [UnityEditor.InitializeOnEnterPlayMode] public static void InitializeOnEnterPlayMode() { } #endif } ジェネリックな static クラスで InitializeOnEnterPlayMode を使用すると InvalidOperationE</t>…

【Unity】AssemblyBuilder.Build で Assets フォルダ外のスクリプトから .dll を作成する

使用例 参考サイト様

【Unity】2022.3.20f1 だと一部の Editor Window が最大化した時にクリックしても反応しない

概要 2022.3.20f1 だと一部の Editor Window が最大化した時にクリックしても反応しない Console、Project、Android Logcat など 2022.3.16f1 だと反応する

【Unity】Firebase の Remote Config で MinimumFetchIntervalInMilliseconds を設定してもキャッシュが参照されてしまう場合

概要 Unity エディタで Enter Play Mode を有効にしている場合、 var settings = FirebaseRemoteConfig.DefaultInstance.ConfigSettings; settings.MinimumFetchIntervalInMilliseconds = 1; await FirebaseRemoteConfig.DefaultInstance.SetConfigSettingsA…

【Unity】スプライト用のガウシアンブラーシェーダ

ソースコード 参考サイト様

【Unity】エディタのタイトルバーにプロジェクトの絶対パスを表示する方法

概要 Preferences の「General > Use Project Path in Window Title」をオンにすると エディタのタイトルバーにプロジェクトの絶対パスを表示できる

【Unity】Editor.log にタイムスタンプを表示する方法

概要 Preferences の「General > Timestamp Editor log entries」をオンにすると Editor.log にタイムスタンプが表示されるようになる

【Unity】ItemNotNull と ItemCanBeNull は UniTask<> に使える

概要 [ItemNotNull] や [ItemCanBeNull] が灰色になるので使えないと思っていたが ちゃんと警告が表示された

【Unity】Rider で特定のファイルの警告をすべて無効化する方法

概要 // ReSharper disable all コードの先頭に上記のコメントを追加する

【Unity】FirebaseCrashlytics The Crashlytics build ID is missing.

概要 FirebaseCrashlytics The Crashlytics build ID is missing. This occurs when the Crashlytics Gradle plugin is missing from your app's build configuration. Please review the Firebase Crashlytics onboarding instructions at https://firebase…

【Unity】Error: Burst internal compiler error: System.IO.FileNotFoundException: Could not find file "/UnityProject/Library/BurstCache/iOS-Arm/Objects/XXXX"

概要 Error: Burst internal compiler error: System.IO.FileNotFoundException: Could not find file "/UnityProject/Library/BurstCache/iOS-Arm/Objects/1adf46aae6cb8ca41f6e7951f74842d5.bc" File name: '/UnityProject/Library/BurstCache/iOS-Arm/Obj…

【Python】複数の .png の透明部分を一括でトリミングするスクリプトの例

ソースコード from PIL import Image import os # トリミングする元の画像フォルダー input_folder = "input_folder" # トリミングした画像を保存するフォルダー output_folder = "output_folder" # 元のフォルダー内の全ての.pngファイルを取得 file_list =…

【Android】画面録画の例

概要 adb shell screenrecord --bugreport /data/local/tmp/screenrecord.mp4 を実行する Ctrl + C で終了する adb pull /data/local/tmp/screenrecord.mp4 で取り出す

【Android】adb logcat で取得したログをテキストファイルに書き込む例

概要 adb logcat -c を実行する adb logcat -c をもう一度実行する 最初の実行ではログがクリアされないことがあるため adb logcat > capture.logcat.txt を実行する Ctrl + C で終了する

【Unity】Firestore の内部のログを Android Logcat で見る方法

概要 FirebaseFirestore.LogLevel = LogLevel.Debug; 上記の処理を呼び出す(デフォルト値は LogLevel.Info) 参考サイト様

【Android】32 ビットか 64 ビットか確認する方法

概要 Google Play から 「CPU-Z」をインストールする 「CPU-Z」を起動して「SYSTEM > Kernel Architecture」を見る

【Unity】Firebase を使用している Unity プロジェクトを Jenkins で Android ビルドしていたらいつからか時間がかかるようになった

はじめに Firebase を使用している Unity プロジェクトを 定期的に Jenkins で Android ビルドしていたら いつからかビルド時間が 3 倍以上に伸びている現象に遭遇した ログを見てみたら GooglePlayServices.CommandLineDialog must be instantiated using t…

【C#】List<> の Type で要素の型を取得する例

ソースコード var elementType = type.GetGenericArguments()[ 0 ]; 参考サイト様

【C#】Type が List<> かどうか調べる例

ソースコード var isList = type.IsGenericType && type.GetGenericTypeDefinition() == typeof( List<> ); 参考サイト様

【C#】配列もしくはリストの要素の型を取得する例

ソースコード var isList = type.IsGenericType && type.GetGenericTypeDefinition() == typeof( List<> ); var elementType = isList ? type.GetGenericArguments()[ 0 ] : type.GetElementType(); 参考サイト様

【Unity】Firebase Authentication のメール列挙保護をオンにしたら LinkWithCredentialAsync 関数でエラーが出るようになった

概要 setAccountInfo REST API を使用してメール / パスワード プロバイダを既存のユーザー アカウントにリンクできなくなります。linkWithCredential クライアント SDK メソッドと EmailAuthCredential は、どのプラットフォームでも使用できなくなります。…

【Jenkins】Jenkins Pipeline の Git の Pull でタイムアウトする場合

概要 pipeline { stages { stage('Git') { steps { git branch:'xxxx' url: 'git@github.yyyy/zzzz.git' } } } } 上記のようなコードを実行したらタイムアウトでビルドに失敗する現象に遭遇した pipeline { stages { stage('Git') { steps { checkout scmGit…

【Unity】Mac の Unity 2022.3.16f1 でマウスのミドルクリックで Scene ビューがフォーカスされない

概要 Mac の Unity 2022.3.16f1 の Scene ビュー上でマウスのミドルクリックをした時に Scene ビューがフォーカスされない現象に遭遇した Scene/Game View: Fixed an issue where clicking on the SceneView with the middle mouse button would not focus i…

【Rider】最近開いたプロジェクトの一覧をクリアする方法

概要 最近開いたプロジェクトの一覧をクリアしたい場合は C:\Users\【ユーザー名】\AppData\Roaming\JetBrains\Rider【バージョン】\options\recentSolutions.xml 上記のファイルを削除するか、 ファイルを開いて不要なプロジェクトの項目を削除して保存する…

【Unity】java.lang.NoSuchMethodException - com.unity3d.player.x.<init> []

概要 MessagingUnityPlayerActivity.onCreate java.lang.NoSuchMethodException - com.unity3d.player.x.<init> [] com.google.firebase MessagingUnityPlayerActivity.java:80 Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentI</init>…