コガネブログ

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

【Unity】Wi-Fi で Android と接続してデバッグする方法

検証環境 Windows 10 Unity 2021.2.7f1 手順 Android で PC と同じ Wi-Fi に接続しておく Android の設定アプリを開いて「無線とネットワーク > Wi-Fi > 設定」を押して IP アドレスをメモしておく Android を PC に USB 接続する コマンドプロンプトを開い…

【Unity】Unity 2021.2 の Input System で iOS において WebGL で加速度を取得する方法

概要 Unity プロジェクトに Input System パッケージをインストールして Project Settings の「Input System Package」のページで 「Supported Devices」に「Accelerometer」を追加して using TMPro; using UnityEngine; using UnityEngine.InputSystem; pub…

【Unity】Building Library\Bee\artifacts\Android\Manifest\LauncherManifestDiag.txt failed with output:

概要 Building Library\Bee\artifacts\Android\Manifest\LauncherManifestDiag.txt failed with output: System.Xml.XmlException: Name cannot begin with the '<' character, hexadecimal value 0x3C. Line 29, position 5. at System.Xml.XmlTextReaderIm…

【Unity】AndroidManifest をコードから編集できる「AndroidManifestReflection」紹介

はじめに 「AndroidManifestReflection」を Unity プロジェクトに導入することで AndroidManifest をコードから編集できるようになります 使用例 using UnityEditor; using UTJ.Android.Extensions; internal static class Example { [MenuItem( "Tools/Hoge…

【Unity】iOS において指定したパスを iCloud のバックアップの対象外にする方法

概要 using System.Diagnostics; using UnityEngine; public class Example : MonoBehaviour { private void Awake() { SetNoBackupFlag( Application.persistentDataPath ); } [Conditional( "UNITY_IOS" )] private static void SetNoBackupFlag( string p…

【Unity】iOS / Android でトースト表示できる「Unity-Native-Toasts」紹介

はじめに 「Unity-Native-Toasts」を Unity プロジェクトに導入することで iOS / Android でトースト表示できるようになります 使用例 using UnityEngine; using UnityNative.Toasts; public class Example : MonoBehaviour { private static readonly IUnit…

【Unity】Android で Chrome Custom Tabs を使用する方法

はじめに 基本的には上記サイト様が紹介してくださっている手順を踏めば Android で Chrome Custom Tabs を使用できるようになりますが、 いくつか躓いた箇所があったため、備忘録として自分が踏んだ手順をまとめておきます 検証環境 Unity 2020.1.6f1 手順 …

【Unity】iOS で SFSafariViewController を使用する方法

はじめに 上記のフォーラムで公開されているスクリプトを使用することで iOS で SFSafariViewController を使用できるようになります この記事では上記のスクリプトを参考に iOS で SFSafariViewController を使用できるようにする方法を紹介していきます 検…

【Unity】アプリを実行している端末の Android バージョンを取得する方法

ソースコード using UnityEngine; public static class AndroidUtils { public static int GetSdkInt() { #if UNITY_ANDROID if ( Application.isEditor ) return -1; using ( var version = new AndroidJavaClass( "android.os.Build$VERSION" ) ) { return…

【Unity】iOS / Android でローカル通知を実装できる「UniLocalNotification」紹介

はじめに 「UniLocalNotification」を Uniy プロジェクトに導入することで iOS / Android でローカル通知を実装できるようになります 検証環境 Unity 2019.3.10f1 iOS 13.3.1 Android 8.0.0 使用例 iOS Android 使い方 UniLocalNotification.Initialize(); …

【Unity】Android でもソフトウェアキーボードの表示領域を取得できるパッケージ「UniSoftwareKeyboardArea」を GitHub に公開しました

リポジトリ 使用例 using UniSoftwareKeyboardArea; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { public CanvasScaler m_canvasScaler; public RectTransform m_rectTransform; private void Update() { var rate = m_ca…

【Unity】MasterMemory を使用しているプロジェクトを Android IL2CPP ビルドした際に MemoryDatabase 生成時に強制終了する場合

解決方法 Android Device Monitor でログを見てみると 「Unable to find advapi32」というエラーが出力されている Project Settings の「Player」を開いて「ARMv7」をオフにしてビルドすると直る 参考サイト様

【Unity】External Tools の Android の項目の取得または設定ができるパッケージ「UniAndroidExternalTools」を GitHub に公開しました

リポジトリ 使用例 using UniAndroidExternalTools; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Log" )] private static void Log() { // JDK Installed with Unity (recommended) Debug.Log( "JdkInstalledWi…

【Unity】高速な xcodebuild

概要 # 通常の xcodebuild xcodebuild \ -project $PROJECT_PATH \ -scheme $SCHEME \ archive -archivePath $ARCHIVE_PATH \ PROVISIONING_PROFILE=$PROVISIONING_PROFILE # 高速な xcodebuild xcodebuild \ -project $PROJECT_PATH \ -scheme $SCHEME \ ar…

【Unity】Exception: Calling TargetGuidByName with name='Unity-iPhone' is deprecated

概要 using UnityEditor; using UnityEditor.iOS.Xcode; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var path = "iOS"; var projectPath = PBXProject.GetPBXProjectPath( path ); var project = new PBXProje…

【Unity】Android のパッチビルドでビルド時間を削減する

概要 アセットファイルは変更せず、スクリプトのみ変更した場合は Build Settings の「Development Build」と「Scripts Only Build」をオンにして 「Patch」もしくは「Patch And Run」を選択することでビルド時間を削減できます 検証結果 適当な Unity プロ…

【Android】'lib\monitor-location' が見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。

概要 'lib\monitor-location' が見つかりません。 名前を正しく入力したかどうかを確認してから、やり直してください。 【Android SDK】\tools\monitor.bat を起動したところ 上記のメッセージが表示された こちらの対応を行ったら正常に起動できるようにな…

【Android】A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Monitor

概要 A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Monitor, No Java virtual machine was found after searching the following locations : XXXX javaw.exe in your current PATH 【Android SDK】\…

【Unity】Unity 2019.3 新機能 - Android SDK や NDK のパスを参照できるプロパティが追加された

概要 using UnityEditor; using UnityEditor.Android; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { Debug.Log( AndroidExternalToolsSettings.ndkRootPath ); Debug.Log( AndroidExternalTo…

【Unity】Xcode プロジェクトをキャッシュしてビルド時間を削減できる「UnityXcodeCache」紹介

はじめに 「UnityXcodeCache」を Unity プロジェクトに導入することで Xcode プロジェクトをキャッシュしてビルド時間を削減できようになります 使い方 「Tools > Xcode > WriteCacheXcode」を実行します Xcode プロジェクトをビルドします 「Tools > Xcode …

【Unity】50種類以上のデバイスでゲーム画面がどう表示されるかエディタ上で確認できて、ノッチやセーフエリアの対応もできる「Universal Device Preview」紹介

はじめに この記事は「Unityアセット冬のアドベントカレンダー 2019 Winter」の 12/2 の記事です 「Universal Device Preview」を Unity プロジェクトに導入することで 50種類以上のデバイスでゲーム画面がどう表示されるかエディタ上で確認できて、 ノッチ…

【Unity】Android のバイブレーションで時間を指定できる「UniAndroidVibration」紹介

はじめに 「UniAndroidVibration」を Unity プロジェクトに導入することで Android のバイブレーションで時間を指定できます 使い方 using UnityEngine; public class Example : MonoBehaviour { private void Update() { if ( Input.GetMouseButtonDown( 0 …

【Unity】Android で QR コードからデータを読み込む方法

はじめに 「ZXing.Net」を Unity プロジェクトに導入することで Android で QR コードからデータを読み込むことができるようになります (iOS でも使用できますが、本記事では Android における使い方を紹介していきます) 目次 はじめに 目次 サンプルプロ…

【Unity】タッチ入力を検出できる「unity-pan-and-zoom」紹介

はじめに 「unity-pan-and-zoom」を Unity プロジェクトに導入することで タッチ入力を検出できるようになります 使い方 シーンのゲームオブジェクトに「PanAndZoom」をアタッチして using UnityEngine; public class Example : MonoBehaviour { private voi…

【Unity】11種類以上のモバイルデバイスでゲーム画面がどのように表示されるかエディタ上で確認できる「Device Simulator」が Package Manager からインストールできるようになった

はじめに https://docs.unity3d.com/Packages/com.unity.device-simulator@1.0/manual/ 11種類以上のモバイルデバイスでゲーム画面がどのように表示されるか エディタ上で確認できる「Device Simulator」が Package Manager からインストールできるようにな…

【Unity】モバイルで画面の向きを変更する方法

概要 Screen.orientation = ScreenOrientation.LandscapeLeft; Screen.orientation を変更することでモバイルで画面の向きを変更できます 列挙型 向き Portrait LandscapeLeft LandscapeRight

【Unity】Unity プロジェクトを開いた時に Android の keystore のパスワードを自動で設定するエディタ拡張

ソースコード using UnityEditor; public static class AndroidKeystoreRegister { [InitializeOnLoadMethod] private static void Run() { PlayerSettings.Android.keyaliasPass = "【パスワード】"; PlayerSettings.Android.keystorePass = "【パスワード…

【Unity】Android ビルド完了後に Bundle Version Code を増やすエディタ拡張

ソースコード using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; public class BundleVersionCodeIncrementer : IPostprocessBuildWithReport { public int callbackOrder => 0; public void OnPostprocessBuild( BuildRepor…

【Unity】Android ビルド開始時に Bundle Version Code を増やすエディタ拡張

ソースコード using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; public sealed class BundleVersionCodeIncrementer : IPreprocessBuildWithReport { public int callbackOrder => 0; public void OnPreprocessBuild( Build…

【Unity】Google AdMob にテストデバイスを追加する時は SystemInfo.deviceUniqueIdentifier が使える

概要 Google AdMob の公式ドキュメントには テストデバイスを追加する時はコンソールや logcat 出力で テストデバイスの ID をコピーして使用する、と記載されていますが var request new AdRequest.Builder() .AddTestDevice( SystemInfo.deviceUniqueIdent…