コガネブログ

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

【Unity】Android端末においてソフトウェアキーボードの領域を取得する

概要 public int GetKeyboardSize() { #if !UNITY_EDITOR && UNITY_ANDROID using ( var unityPlayer = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" ) ) { var view = unityPlayer .GetStatic<AndroidJavaObject>( "currentActivity" ) .Get<AndroidJavaObject>( "mUnityPlayer" ) .Ca</androidjavaobject></androidjavaobject>…

【Unity】iOS端末においてソフトウェアキーボードの領域を取得する

概要 TouchScreenKeyboard.area ※Androidでは取得不可能 参考サイト様 docs.unity3d.com

【Unity】Androidにおいて、ソフトウェアキーボードの文字色が白色になり、背景色と同化して見えなくなる不具合の修正方法

遭遇した環境 Unity 5.4.3f1 修正方法 AndroidManifest.xml の application タグに下記の記述を追加する

【Unity】App Storeに掲載されるipaの容量を確認するために使用している方法

.ipaを.zipに変換して展開して アプリ名以外のファイルをすべて選択してプロパティを見る 参考サイト様 http://helpdesk.unity3d.co.jp/hc/ja/articles/204763354-App-Store-%E4%B8%8A%E3%81%A7%E3%81%AE-iOS-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B5%E3%82%A4…

【Unity】iOSの「CFBundleVersion」と「CFBundleShortVersionString」に紐付くパラメータ

.plist Unity CFBundleVersion Build CFBundleShortVersionString Version

【Unity】iOSにおいてサスペンド・レジューム時にOnApplicationPauseが2回連続で呼び出されることがある

Unity5.4.4f1でビルドしたアプリをサスペンドした状態で長時間放置してから レジュームしてみたところ、OnApplicationPause が2回連続で呼び出される現象に遭遇した アプリのサスペンド・レジューム時に1度だけ呼び出される処理を実装したい場合は 下記のよ…

【Unity】Unity5.4.4f1でAndroidのIL2CPP版のROMをビルドするとキャッシュが肥大化していく

Unity5.4.4f1でAndroidのIL2CPP版のROMをビルドしていたところ、 ビルドを繰り返すたびにLibraryフォルダ内の 下記のフォルダのサイズが少しずつ増えていく現象が発生し、 ビルドマシンの容量が圧迫される問題に遭遇した il2cpp_android_armeabi-v7a il2cpp_…

【Unity】iOS10の端末においてFPSが60の状態でスリープから復帰するとアプリが強制終了することがある

再現したUnityのバージョン Unity5.6.0b2 Unity5.5.0p3 Unity5.4.4f1 発生条件 iOS10の端末においてFPSが60の状態でスリープから復帰するとアプリが強制終了する 解決方法 サスペンドする時にFPSを30に変更する private int m_prevFps; private void OnAppli…

【Unity】Google Cardboard SDKを使用しているUnityプロジェクトのバージョンを5.5から5.6βにアップデートした際にAndroid版のROMで起動時に発生したエラー

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.hand.cham/com.google.unity.GoogleUnityActivity}: java.lang.ClassNotFoundException: Didn't find class "com.google.unity.GoogleUnityActivity" on path: DexPathList[[…

【Unity】Unity5.5でスクリプトからAndroidのビルド方法をIL2CPPに変更する方法

概要 下記のようなプログラムを作成する using UnityEditor; public static class ExampleClass { [MenuItem( "Tools/Example" )] public static void Example() { PlayerSettings.SetScriptingBackend( BuildTargetGroup.Android, ScriptingImplementation.…

【Unity】Unity5.5でAndroidのIL2CPPビルド版のアプリを実機で起動すると起動直後に強制終了する不具合の原因と対応方法

エラー内容 failed to extract resources needed by il2cpp. Unity5.5でAndroidのIL2CPPビルド版のアプリを実機で起動したところ、 起動直後に上記のエラーが発生してアプリが強制終了する不具合に遭遇した 原因 グラフィックAPIに「OpenGLES3」が追加されて…

【Unity】Androidのデフォルトのアクティビティ名

com.unity3d.player.UnityPlayerActivity

【Unity】スクリプトからAndroidのビルド方法をIL2CPPに変更する方法

概要 下記のようなプログラムを作成する using UnityEditor; public static class ExampleClass { [MenuItem( "Tools/Example" )] public static void Example() { PlayerSettings.SetPropertyInt( name : "ScriptingBackend", value : ( int )ScriptingImpl…

【Unity】MacでUnityのメニューのPreferencesからAndroid NDKを落とした場合に解凍する方法

概要 AndroidのIL2CPPビルド環境構築時に調べたのでメモ ターミナルから実行権限を付与する chmod +x android-ndk-r10e-darwin-x86_64.bin ターミナルから実行する ./android-ndk-r10e-darwin-x86_64.bin 下記のフォルダが展開される android-ndk-r10e 参考…

【Unity】Android や iOS のシェアを確認できるサイト

概要 http://hwstats.unity3d.com/mobile/ 上記のページで Android や iOS のシェアを確認できます

Unity5.4で気になった改善点と変更点メモ

AndroidでIL2CPPが正式サポート iOS6がサポート対象外に スプラッシュスクリーンに細かい設定が追加された GameObject.AddComponent<MonoBehaviour>が例外を吐くようになった 実機でログ出力するかどうかをPlaterSettingsで設定できるようになった アニメーションで同じイベ</monobehaviour>…

【Unity】AudioClip のインポート時に iOS と Android で設定を分ける

はじめに http://japan.unity3d.com/unite/unite2016/ Unite 2016の「モバイル端末向けのUnityアプリケーションの最適化実践テクニック」 の講演において、AudioClipの圧縮形式は iOSでは「MP3」、Androidでは「Vorbis」がオススメとのことだったので AssetP…

【Unity】Unity 製のスマホゲームを調べてみた(2016/3/28)

はじめに Google PlayやApp Storeで公開されているスマホゲームが Unity製かどうか気になったので調査しました 調査方法 Androidの場合、Unityの標準機能を使用してDLしたアセットバンドルは /sdcard/Android/data/【Bundle Identifier】/files/UnityCache …

【Unity】iOSアプリの申請時に発生したエラー「Missing required icon file.」

ERROR : "Missing required icon file. The bundle does not contain an app icon for iPad of exactly '167x167' pixels, in .png format ." iOSアプリの申請時に遭遇しました 5.3.3以前のバージョンのUnityで作成したiOSアプリを申請すると 発生する可能性…

【Unity】WWWクラスのerror内容の覚書

エラー内容 原因 Could not resolve host: hoge; No data record of requested type エディタ上で不正なURL設定 java.net.ConnectException: failed to connect to Androidで機内モードONもしくはWi-Fi無効化 java.net.UnknownHostException: Unable to reso…

【C#】サロゲート文字の場合 true を返す関数「char.IsSurrogate」

概要 if ( char.IsSurrogate( ch ) ) { } UnityでNGUIを使用して入力欄を作成した時に 特定のAndroid端末で絵文字を入力されると アプリが強制終了する不具合に遭遇したため その不具合の回避するために調査している時に知りました

【Unity】一度読み込んだリソースをキャッシュする場合としない場合で読み込み速度にどれくらい差が出るか検証しました

はじめに Resources.Loadでリソースを読み込む際に 一度読み込んだリソースをキャッシュするかしないかで どれくらい速度に差が出るか気になったので検証しました 検証環境 Unity:5.3.1f1 OS:Android モデル番号:Nexus 7 Androidバージョン:5.0.1 検証に…

【Unity】Android端末でプレイ中に電源ボタンを押してから再び電源ボタンを押してもパスロック画面が表示されない

Unityで開発中のアプリをAndroid端末でプレイ中に 電源ボタンを押してから、再び電源ボタンを押すと Androidのパスロック画面が表示されず、 直接アプリが表示される現象に遭遇しました developmentビルドしたときに発生する挙動のようです ビルド時にチェッ…

【Unity】iOSアプリの申請時に発生したエラー「ERROR ITMS-90339」

ERROR ITMS-90339: "This bundle is invalid. The Info.plist contains an invalid key 'CFBundleResourceSpecification’in bundle XXXX [XXXX.app] iOSアプリの申請時に遭遇しました Unity 5.2.2f1で作成したiOSアプリを申請すると発生するようです Unityを…

【Unity】iOSアプリの申請時に発生したエラー「ERROR ITMS-90122」

ERROR ITMS-90122: "Invalid Executable Size. The size of your app's executable file 'XXXX.app/XXXX' is 81477632 bytes, which exceeds the maximum allowed size of 80MB" Unity 5.2.2p1で作成したiOSアプリの申請時に遭遇しました アプリの容量が80MB…

【Unity】iOSアプリの申請時に発生したエラー「ERROR ITMS-90474」

ERROR ITMS-90474: "Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait,UIInterfaceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight'. …

【Unity】CSV と ScriptableObject どちらの形式でマスターデータを管理したほうが読み込み速度が高速になるか検証しました

はじめに 現在開発中のゲームでマスターデータをCSVで管理しているのですが、 マスターデータをCSVで管理する方法と ScriptableObjectで管理する方法のどちらがより高速に データを読み込むことができるのかが気になったので調査してみました 検証環境 Unity…

【Unity】can't be loaded because it was not built with the right version or build target

can't be loaded because it was not built with the right version or build target Android版のアプリでiOS版のアセットバンドルをダウンロードしようとしたり、 iOS版のアプリでAndroid版のアセットバンドルをダウンロードしようとするなど、 間違ったプ…

【Unity】iOSにおいて3Dの表示が真っ黒になる不具合の解決方法

iOSにおいて、開発しているゲームの3D表示が真っ黒になる不具合に遭遇したので 解決方法を書き残しておきます Unityのバージョン:4.6.5p4 「File>Build Settings...」を選択 「Platform」で「iOS」を選択 「Player Settings...」を選択 「Dynamic Batching…

【Unity】Unity 5.0 新機能「UnityEngine.iOS.Device」

Unity 5.0 から「UnityEngine.iOS.Device」が追加されました このクラスを使用することでアプリが動作しているiOS端末の 世代やバージョンなどの情報を取得できます using UnityEngine; using UnityEngine.iOS; public class ExampleClass : MonoBehaviour {…