コガネブログ

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

【Unity】コンポーネントの位置を指定したコンポーネントの上か下に自動で移動するエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEngine; [MoveComponentUp( typeof( Rigidbody2D ) )] public sealed class Example : MonoBehaviour { } using Kogane; using UnityEngine; [MoveComponentDown( typeof( Rigidbody2D ) )] public sealed class…

【Unity】In-App Review API の内部テストでレビューダイアログが 2 回目以降表示されない場合

はじめに Unity で作成している Android アプリに In-App Review API を導入して ビルドした .aab を Google Play Console の内部テストで公開して テスターアカウントでアプリをインストールして動作確認したところ 1 回目は正常にレビューダイアログが表示…

【Unity】java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

概要 Running Gradle... XXXX\Temp\PlayServicesResolverGradle\gradlew.bat --no-daemon -b "XXXX\Temp\PlayServicesResolverGradle\PlayServicesResolver.scripts.download_artifacts.gradle" "-PANDROID_HOME=C:\Program Files\Unity\Hub\Editor\2022.1.1…

【Unity】キレイにループ再生したい時は .mp3 ではなく .ogg を使用する

参考サイト様 結論から言うと、どうもMP3は連続再生でのループに向いていない形式のようです。 WAVファイルからMP3ファイルに変換する際、 元データには無い余計な無音部分が先頭、 または末尾に勝手に挿入されてしまうからです。

【Unity】iOS ビルドなのにAndroid Resolver が走ってしまう場合

概要 MenuItem から iOS ビルドする時に Android Resolver が走ってしまう現象に遭遇した PlayerSettings.Android.targetArchitectures = AndroidArchitecture.ARM64; iOS ビルド時にも PlayerSettings.Android のプロパティを操作していることが原因だった …

【Unity】Burst requires the android NDK to be correctly installed

概要 BuildFailedException: Burst compiler (1.7.3) failed running stdout: Burst requires the android NDK to be correctly installed (it can be installed via the unity installer add component) in order to build a standalone player for Android…

【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】TextMesh Pro のテキストが変更されたかどうかを検知する方法

概要 using TMPro; using UnityEngine; public sealed class Example : MonoBehaviour { public TMP_Text m_tmpText; private void OnEnable() { TMPro_EventManager.TEXT_CHANGED_EVENT.Add( OnChangedEvent ); } private void OnDisable() { TMPro_EventMa…

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

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

【Unity】BuildOptions.DetailedBuildReport を使うとビルド後にどのシーンがどのアセットを参照しているかわかる

概要 using System.Linq; using System.Text; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var options = new BuildPlayerOptions { scenes = EditorBuildSettings.scen…

【Unity】Scene ビューで Space キーを押すとオーバーレイの ON / OFF を切り替えられる

概要 Scene ビューで Space キーを押すと オーバーレイの ON / OFF を切り替えられる

【Unity】BuildOptions.AutoRunPlayer を使うと Build And Run と同じ挙動になる

概要 var options = new BuildPlayerOptions { scenes = EditorBuildSettings.scenes.Select( x => x.path ).ToArray(), locationPathName = "app.apk", target = BuildTarget.Android, options = BuildOptions.AutoRunPlayer }; var buildReport = BuildPip…

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

リポジトリ 使用例

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

リポジトリ 使用例

【Unity】Failed to register for remote notifications

概要 Firebase Cloud Messaging を導入した Unity プロジェクトを iOS ビルドして動作確認したところ Failed to register for remote notifications 上記のエラーが発生する現象に遭遇した Mobile Notifications パッケージの Project Settings で 「Enable …

【Unity】Firebase.FirebaseException: We have blocked all requests from this device due to unusual activity. Try again later.

概要 Firebase.FirebaseException: We have blocked all requests from this device due to unusual activity. Try again later. FirebaseUser.SendEmailVerificationAsync を何回か試していたら 途中から上記の例外が発生して動作確認ができなくなってしま…

【Unity】Firebase.FirebaseException: The email address is badly formatted.

概要 Firebase.FirebaseException: The email address is badly formatted. FirebaseAuth.SignInWithEmailAndPasswordAsync を使用した時に 上記の例外が発生する現象に遭遇した パスワードの文字列をよく見てみたらアットマーク @ が 半角ではなく全角にな…

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

リポジトリ 使用例

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

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

【Unity】GvhProjectSettings.xml が勝手に変更される

概要 Firebase を導入した Unity プロジェクトで GvhProjectSettings.xml が勝手に変更される 現象に遭遇した 公式の GitHub で Issue が作られていたが、まだ解決していないようだった 検証環境 Unity 2022.1.11f1 macOS Monterey バージョン 12.5.1 MacBoo…

【Unity】3D 空間に配置した TextMesh Pro に SpriteMask を適用する方法

概要 TextMesh Pro のマテリアルを選択して Stencil ID を 1、Stencil Comp を 3 にすることで ワールド空間に配置した TextMesh Pro に SpriteMask を適用できます Stencil ID を 0 にすると逆マスクになります 参考サイト様 You can use SpriteMask with T…

【Unity】3D Object の TextMesh Pro の色が正しく反映されない場合の対処方法

はじめに Vertex Color に設定した色より薄く表示される 3D Object の TextMesh Pro は Vertex Color に設定した色が 正しく反映されないことがあるのでその対処方法 目次 はじめに 目次 検証環境 対処方法1:TextMesh Pro を 3.2.0-pre.3 にアップデートす…

【Unity】ArgumentException: Can't save a Prefab instance

概要 PrefabUtility.SavePrefabAsset( prefab ); PrefabUtility.SavePrefabAsset でプレハブを保存しようとして ArgumentException: Can't save a Prefab instance 上記のエラーが発生する場合は PrefabUtility.SaveAsPrefabAsset( prefab, prefabPath ); Pr…

【Unity】Calling OnPostBuildPlayerScriptDLLs callbacks. For faster build speeds, consider not using this callback, as we don't need to copy assemblies to the staging area for the incremental player build otherwise.

概要 Calling OnPostBuildPlayerScriptDLLs callbacks. For faster build speeds, consider not using this callback, as we don't need to copy assemblies to the staging area for the incremental player build otherwise. ビルド時に上記のログが出力さ…

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

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

【Unity】JNI:GetAudioStreamVolume:java.lang.SecurityException: listen

概要 JNI:GetAudioStreamVolume:java.lang.SecurityException: listen Unity 2022.1.11f1 で Android ビルドしたところ アプリ起動直後に上記のエラーログが出力されていた 最新の Unity バージョンなら直っているようだったので Unity 2022.1.20f1 で Andro…

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

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

【Unity】The operation couldn't be completed. Unable to locate a Java Runtime.

概要 Gradle failed to fetch dependencies. Failed to run 'XXXX/UnityProject/Temp/PlayServicesResolverGradle/gradlew --no-daemon -b "XXXX/UnityProject/Temp/PlayServicesResolverGradle/PlayServicesResolver.scripts.download_artifacts.gradle" "-…