コガネブログ

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

【Unity】アプリに含まれるアセットを圧縮する設定

検証環境 Unity 2017.3.0f3 概要 Build Settings の「Compression Method」を設定することで アプリに含まれるアセットを圧縮することができます BuildPipeline.BuildPlayer ( EditorBuildSettings.scenes, "app.apk", BuildTarget.Android, BuildOptions.Co…

【Unity】iOS / Android で使用メモリを確認できる「MemoryChecker-Unity」紹介

はじめに 「MemoryChecker-Unity」を Unity プロジェクトに導入することで iOS / Android で使用メモリを確認できるようになります 使い方 using UnityEngine; public class Example : MonoBehaviour { #if UNITY_IOS [DllImport("__Internal")] private sta…

【Unity】iOS の写真や Andoid のギャラリーに画像や動画を保存できる「Unity Native Gallery Plugin」紹介

はじめに 「Unity Native Gallery Plugin」を Unity プロジェクトに導入することで iOS の写真や Andoid のギャラリーに画像や動画を保存できるようになります 設定 Android 「Player Settings」で「Write Permission」を「External (SDCard)」に変更する iO…

【Unity】iOS / Android でクリップボードに文字列を設定・取得できる「UniClipboard20xx」紹介

はじめに 「UniClipboard20xx」を Unity プロジェクトに導入することで iOS / Android でクリップボードに文字列を設定・取得できるようになります 使い方 // クリップボードから文字列を取得 var text = UniClipboard.Clipboard.Text; // クリップボードに…

【Unity】Unity 製のゲームやアプリのリバースエンジニアリングツール「UnityStudio」紹介

はじめに 「UnityStudio」は Unity 製のゲームやアプリのリバースエンジニアリングツールで、 アセットの解析や抽出ができます 概要(引用) Unity Studio は Unity のゲームやアプリからアセットを抽出するためのツールです Web、PC、Linux、MacOS、Xbox360…

【Unity】iOS の IL2CPP ビルド時に不要な属性を除外してアプリの容量を減らすことができる「Unity3D.UselessAttributeStripper」紹介

はじめに 「Unity3D.UselessAttributeStripper」を使用することで iOS の IL2CPP ビルド時に不要な属性を除外して アプリの容量を減らすことができるようになります Unity プロジェクトによっては 18MB もの容量を減らすことも可能です 使い方 ツールの入手 …

【Unity】iOS においてアプリがクラッシュした時の情報を取得できるクラス「CrashReport」紹介

使用例 取得可能なクラッシュレポートをすべて表示するサンプル using UnityEngine; public class Example : MonoBehaviour { private void OnGUI() { var reports = CrashReport.reports; GUILayout.Label( "Crash reports:" ); foreach ( var r in reports…

【Unity】iOS / Android においてアプリの起動時間を測ることができる「UnityInitializeTimeChecker」紹介

はじめに 「UnityInitializeTimeChecker」を Unity プロジェクトに導入することで iOS / Android においてアプリの起動時間を測ることができるようになります 使い方(引用) 「UnityInitializeTimeChecker.unitypackage」を Unity プロジェクトにインポート…

【Unity】iOS や Android で端末のメモリが不足してきた時に呼び出されるコールバック「Application.lowMemory」紹介

使用例 using System.Collections.Generic; using UnityEngine; public class Example : MonoBehaviour { private readonly List<Texture2D> m_textures = new List<Texture2D>(); private void Awake() { Application.lowMemory += OnLowMemory; } private void Update() { // 毎</texture2d></texture2d>…

【Unity】「アカとブルー」における「オブジェクトプーリング」について記載された電子書籍「Unityマニアックス」(¥1,800)が販売開始

販売ページ 書籍内容(引用) 2017年8月にリリースされたiOS/Android用縦スクロール型STG 『アカとブルー』においてゲームエンジンであるUnityを採用し、 多数のオブジェクトを動的なメモリアロケートなしに制御する設計の一端である 「オブジェクトプーリン…

【Unity】Android アプリで Bundle Version Code を設定する時に使用しているルール

概要 自分が関わっている Unity プロジェクトで Android 版のアプリをリリースする時に Bundle Version Code をどのように設定しているかをまとめておきます ルール Bundle Version Code = メジャーバージョン x 10000000 + マイナーバージョン x 100000 + …

【Unity】スマホゲーム開発において Jenkins で使用しているオススメのプラグイン一覧

プラグイン 導入した EnvInject Plugin https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin 環境変数をビルドプロセスに注入できるようになる Job Configuration History Plugin https://wiki.jenkins-ci.org/display/JENKINS/JobConfigHistory+…

【Unity】Google Play で使用できる versionCode の最大値

https://developer.android.com/studio/publish/versioning.html 警告: Google Play で使用できる versionCode の最大値は 2100000000 です。

【Unity】AndroidにおいてFirebaseを使用しているアプリがイベント登録時にハングするようになった

発生状況 Unity 5.4.3f1 Android IL2CPPビルド Firebase SDK導入済み Firebase.TokenReceived 参照時にアプリがハングする 原因 UnityのAndroid IL2CPPビルドのキャッシュが壊れていた 修正方法 下記のファイルを削除してからROMをビルドし直したら直った il…

【Unity】【NGUI】18:9ディスプレイの端末の対応

はじめに 最近は 18:9 や 18.5:9 のディスプレイの Android 端末がリリースされています 開発中のアプリは 16:9 の比率を基準として UI を実装していたので 18:9 や 18.5:9 の端末に対応する処理を下記のように実装しました NGUI を使用している場合 UIRoot …

【Unity】OnPreprocessTextureでテクスチャフォーマットにETCやPVRTCを設定する方法

Unity 5.4.3f1 public class TextureAssetPostProcessor : AssetPostprocessor { private void OnPreprocessTexture() { var impoter = assetImporter as TextureImporter; var maxTextureSize = 2048; var compressionQuality = 50; impoter.SetPlatformTex…

【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では取得不可能 参考サイト様 https://docs.unity3d.com/ScriptReference/TouchScreenKeyboard-area.htmldocs.unity3d.com

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

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

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

.ipaを.zipに変換して展開して アプリ名以外のファイルをすべて選択してプロパティを見る 参考サイト様

【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 参考…