コガネブログ

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

【Unity】WARNING: The APKs won't be signed and thus not installable unless you also pass a keystore via the flag --ks. See the command help for more information.

概要 WARNING: The APKs won't be signed and thus not installable unless you also pass a keystore via the flag --ks. See the command help for more information. E/SplitApkInstallerBase: Failed to commit install session 481543160 with command …

【Unity】Failed to install CocoaPods for the current user.

はじめに Failed to install CocoaPods for the current user. It will not be possible to install Cocoapods in the generated Xcode project which will result in link errors when building your application. For more information see: https://guide…

【Unity】Smart Slicer 2D Pro で「NullReferenceException: Object reference not set to an instance of an object」

概要 using Slicer2D; using UnityEngine; using Utilities2D; internal sealed class SliceTest : MonoBehaviour { [SerializeField] private Vector2 m_start; [SerializeField] private Vector2 m_end; private void Start() { var slice = new Pair2D( m…

【Unity】firebase g_jvm != nullptr

概要 firebase g_jvm != nullptr g_jvm != nullptr UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[]) UnityEngine.Logger:Log(LogType, Object) UnityEngine.Debug:LogError(Object) Firebase.Platform.FirebaseLogger:LogMessage…

【Unity】Mac で EditorPrefs の内容を確認する方法

概要 ~/Library/Preferences/com.unity3d.UnityEditor5.x.plist EditorPrefs の内容は上記のファイルに保存されている。 defaults read com.unity3d.UnityEditor5.x > unity_prefs.txt open unity_prefs.txt 上記のコマンドで EditorPrefs の内容をテキスト…

【Unity】RevenueCat が iOS 12 でクラッシュする場合

はじめに signal SIGABRT RevenueCat を導入した Unity プロジェクトで iOS ビルドして Xcode 16.2 でビルドして iOS 12 で実行したら 上記のエラーが発生してアプリがクラッシュする現象に遭遇した。 m_purchases.SetLogLevel( Purchases.LogLevel.Verbose …

【Unity】「Cannot launch using specified scheme」

概要 Cannot launch using specified scheme The specified scheme name was not found, or there are no schemes in the workspace. RevenueCat を導入した Unity プロジェクトを iOS ビルドしたら Xcode ビルド時に上記のダイアログが出てビルドできない現…

【Unity】「Module 'PurchasesHybridCommon' not found」

概要 Module 'PurchasesHybridCommon' not found RevenueCat を導入した Unity プロジェクトで iOS ビルドして Xcode ビルド時に上記のエラーが発生した場合は 「External Dependency Manager for Unity」を入れ忘れている。 公式の手順に従って「External D…

【Unity】Rider のインテリセンスで「MustBeEqual」などを非表示にする方法

概要 Rider のインテリセンスで「MustBeEqual」などを非表示にしたいなら 設定 | エディター | 一般 | 自動インポート を開いて 「次の型/メンバーをインポート機能から除外する」に以下の項目を追加して保存する。 UnityEngine.Assertions.Must.MustExtensi…

【Unity】コンパイルに失敗したら Mac の通知を表示するエディタ拡張の例

概要 brew install terminal-notifier 上記のコマンドで terminal-notifier をインストールしておく。 using System.Diagnostics; using System.IO; using System.Linq; using UnityEditor; using UnityEditor.Compilation; [InitializeOnLoad] internal sta…

【Unity】Mac の通知を表示するエディタ拡張の例

概要 brew install terminal-notifier 上記のコマンドで terminal-notifier をインストールしておく。 using System.Diagnostics; using UnityEditor; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { // `whic…

【Unity】コンパイルに失敗したらビープ音を再生する例

概要 using System.Linq; using UnityEditor; using UnityEditor.Compilation; [InitializeOnLoad] internal static class Example { static Example() { CompilationPipeline.assemblyCompilationFinished -= OnFinished; CompilationPipeline.assemblyComp…

【Unity】EditorBuildSettingsScene.GetActiveSceneList の使用例

概要 var scenePaths = EditorBuildSettings.scenes .Where( x => x.enabled ) .Select( x => x.path ) .ToArray() ; foreach ( var scenePath in scenePaths ) { Debug.Log( scenePath ); } 上記のような処理を var scenes = EditorBuildSettings.scenes; v…

【Unity】BuildTarget を NamedBuildTarget に変換する例

概要 using UnityEditor; using UnityEditor.Build; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var buildTarget = BuildTarget.iOS; var buildTargetGroup = BuildPipeline.GetBuildT…

【Unity】BuildTargetGroup を NamedBuildTarget に変換する例

概要 using UnityEditor; using UnityEditor.Build; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var buildTargetGroup = BuildTargetGroup.iOS; var namedBuildTarget = NamedBuildTar…

【Unity】Player Settings の Icon を一括で設定する例

概要 using System; using UnityEditor; using UnityEditor.Build; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var icon = AssetDatabase.LoadAssetAtPath<Texture2D>( "" ); var namedBuildTarge</texture2d>…

【Unity】PlayerSetting の Default Icon をスクリプトから変更する例

概要 using UnityEditor; using UnityEditor.Build; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var icon = AssetDatabase.LoadAssetAtPath<Texture2D>( "" ); PlayerSettings.SetIcons ( buildTa</texture2d>…

【Unity】Rider 2024.3 なら IL2CPP ビルドのデバッグ機能で Scene の Hierarchy の情報を見られる

検証環境 Unity 6000.0.40f1 JetBrains Rider Editor 3.0.34 JetBrains Rider 2024.3.6 概要 Unity の Package Manager で 「JetBrains Rider Editor」を最新版にアップデートすると、 JetBrains Rider 2024.3 で追加された IL2CPP Debug support が使えるよ…

【Unity】UnityEditor.GameObjectUtility.DuplicateGameObject でゲームオブジェクトを複製する方法

概要 using UnityEditor; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var gameObject = Selection.activeGameObject; var clone = GameObjectUtility.DuplicateGameObject( gameObject ); Selection.activ…

【Unity】ConsoleWindowUtility.GetConsoleLogCounts で Console のログの数を取得する例

概要 using UnityEditor; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { ConsoleWindowUtility.GetConsoleLogCounts ( error: out var error, warn: out var warn, log: out var log ); D…

【Unity】ConsoleWindowUtility.consoleLogsChanged は Console のログが追加・クリアされた時に呼ばれる

概要 using UnityEditor; [InitializeOnLoad] internal static class Example { static Example() { ConsoleWindowUtility.consoleLogsChanged += OnChanged; } private static void OnChanged() { } }

【Unity】Unity 6 から Scene ビューで Ctrl + 右クリックすると重なっているオブジェクトを選択できる

概要 Unity 6 から Scene ビューで Ctrl + 右クリックすると マウスカーソルの位置に重なっているオブジェクトがリストで表示され、 そこから任意のオブジェクトを選択できるようになった。

【Unity】HandleUtility.GetOverlappingObjects で Scene ビューの指定した位置にあるすべてのオブジェクトを取得できる

使用例 using System.Collections.Generic; using UnityEditor; using UnityEngine; [InitializeOnLoad] internal static class Example { static Example() { // HandleUtility.GetOverlappingObjects は // Scene の GUI イベント中じゃないと使えないらし…

【Unity】MenuItem に secondaryPriority を渡して表示順を細かく調整できる

概要 using UnityEditor; internal static class Example { [MenuItem( "Tools/C", priority = 1 )] private static void C() { } [MenuItem( "Tools/B", priority = 1 )] private static void B() { } [MenuItem( "Tools/A", priority = 1 )] private stati…

【Unity】CompareTag は string よりも TagHandle を使う方が高速

概要 using UnityEngine; internal sealed class Player : MonoBehaviour { private static TagHandle? m_enemyTagHandle; private void OnTriggerEnter2D( Collider2D other ) { m_enemyTagHandle ??= TagHandle.GetExistingTag( "Enemy" ); if ( other.Com…

【Unity】EditorUtility.OpenPropertyEditor で指定したオブジェクトの Property ウィンドウを表示できる

概要 using UnityEditor; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { EditorUtility.OpenPropertyEditor( Selection.activeObject ); } } EditorUtility.OpenPropertyEditor を使うと 上記のような Proper…

【Unity】AssetDatabase.TryGetAssetFolderInfo の使用例

概要 using UnityEditor; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var assetGUID = Selection.assetGUIDs[ 0 ]; var path = AssetDatabase.GUIDToAssetPath( assetGUID ); var isAs…

【Unity】AssetDatabase.GetScriptableObjectsWithMissingScriptCount の使用例

概要 using UnityEditor; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var assetGUID = Selection.assetGUIDs[ 0 ]; var assetPath = AssetDatabase.GUIDToAssetPath( assetGUID ); Deb…

【Unity】AndroidApplication クラスから unityPlayer や currentActivity を取得する方法

概要 Unity 6000.0.7f1 で追加された AndroidApplication クラスを使用すると unityPlayer や currentActivity を取得できます。 これまで // 機内モードかどうかを取得する例 using var unityPlayer = new AndroidJavaClass( "com.unity3d.player.UnityPlay…

【Unity】iOS / Android のテキストサイズを取得する方法

概要 using TMPro; using UnityEngine; using UnityEngine.Accessibility; internal sealed class Example : MonoBehaviour { [SerializeField] private TMP_Text m_tmpText; private void Awake() { AccessibilitySettings.fontScaleChanged += fontScale =…