コガネブログ

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

【Unity】Android で Target Architectures を減らすとビルド時間がどれだけ削減できるか調べてみた

はじめに Android で Target Architectures を減らすと ビルド時間がどれだけ削減できるか調べてみました 検証環境 Unity バージョン:2018.3.7f1 Scripting Backend:IL2CPP Build System:Gradle 空の Unity プロジェクトで検証 検証結果 Architecture ビ…

【Unity】Android で Target Architectures を減らすとアプリ容量がどれだけ削減できるか調べてみた

はじめに Android で Target Architectures を減らすと アプリ容量がどれだけ削減できるか調べてみました 検証環境 Unity バージョン:2018.3.7f1 Scripting Backend:IL2CPP Build System:Gradle 空の Unity プロジェクトで検証 検証結果 Architecture 容…

【Unity】iOS Bundle ID has not been set up correctly

概要 iOS ビルド時に上記のエラーに遭遇した Player Settings の Bundle Identifier に半角スペースが混ざっていたのが原因だった

【Unity】iOS の Architecture を変更するエディタ拡張

概要 iOS の Player Settings に存在する Architecture は using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { PlayerSettings.SetArchitecture( BuildTargetGroup.iOS, 0 ); } } PlayerSettings.Se…

【Unity】Unity 2018.1 新機能 iOS / Android で「GUIUtility.systemCopyBuffer」を使用すると文字列をクリップボードにコピーできる

概要 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { GUIUtility.systemCopyBuffer = "ピカチュウ"; } } Unity 2018.1 から GUIUtility.systemCopyBuffer を使用すると iOS でも Android でもクリップボードに文字列を…

【Unity】Unity 2018.3 新機能「Application.consoleLogPath」コンソールログの出力先のパスを取得できる

概要 using UnityEngine; public class Test : MonoBehaviour { private void Awake() {; Debug.Log( Application.consoleLogPath ); } } コンソールログの出力先のパスを取得できる「Application.consoleLogPath」が (おそらく)Unity 2018.3 から追加され…

【Unity】Unity 2018.3 新機能「Render outside safe area」Android ノッチ付き端末でセーフエリアの範囲外も描画するかどうか設定できる

概要 Unity 2018.3 より Android の Player Settings の Resolution and Presentation に 「Render outside safe area」という項目が追加されました この項目をオンにすると、Android ノッチ付き端末で セーフエリアの範囲外も描画するようになります(デフ…

【Unity】Android で外部キャッシュの保存領域のパスを取得する関数を自作してみる

概要 UnityEngine.Application.temporaryCachePath と同様の文字列を返す関数を自作してみる ソースコード using UnityEngine; public static class AndroidUtils { public static string GetExternalCacheDir() { using ( var player = new AndroidJavaClas…

【Unity】Android で外部データの保存領域のパスを取得する関数を自作してみる

概要 UnityEngine.Application.persistentDataPath と同様の文字列を返す関数を自作してみる ソースコード using UnityEngine; public static class AndroidUtils { public static string GetExternalFilesDir() { using ( var player = new AndroidJavaClas…

【Unity】Android でユーザーがアクセスできない内部キャッシュの保存領域のパスを取得する関数

ソースコード using UnityEngine; public static class AndroidUtils { public static string GetCacheDir() { using ( var player = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" ) ) using ( var activity = player.GetStatic<AndroidJavaObject>( "currentActivi</androidjavaobject>…

【Unity】Android でユーザーがアクセスできない内部データの保存領域のパスを取得する関数

ソースコード using UnityEngine; public static class AndroidUtils { public static string GetFileDir() { using ( var player = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" ) ) using ( var activity = player.GetStatic<AndroidJavaObject>( "currentActivit</androidjavaobject>…

【C#】.NET アセンブリを逆コンパイルできる「dotPeek」紹介

C#

はじめに 「dotPeek」を使用すると .NET アセンブリを逆コンパイルできるようになります 入手方法 上記のページで「GET DOTPEEK」を選択することで入手できます 使い方 .dll ファイルをドラッグ&ドロップすることで、その .dll を逆コンパイルできます

【Unity】iOS ビルド後に Xcode プロジェクトの「Debug Information Format」に「DWARF」を設定するエディタ拡張

概要 「Debug」以外の項目にも「DWARF」を設定したい場合は 19行目の "Debug" の部分を "Release" や "ReleaseForProfiling" 、 "ReleaseForRunning" などに変更します 「DWARF with dSYM File」を設定したい場合は 21行目の "dwarf" の部分を "dwarf-with-d…

【Unity】iOS ビルド後に Xcode プロジェクトの「Enable Bitcode」をオフにするエディタ拡張

概要 参考サイト様

【Unity】指定したフォルダに含まれているすべてのファイルの依存関係も含めたハッシュ値を計算できるスクリプト

ソースコード(引用) 使用例 指定したフォルダに含まれているいずれかのファイルか、 それらのファイルが依存しているファイルが変更された場合に 違うハッシュ値が取得できるため、ファイルに変更があったかどうかの検知に使用できます 参考サイト様

【Mac】Mac のコア数を確認する方法

概要 system_profiler SPHardwareDataType ターミナルで上記のコマンドを実行する 出力された文字列中の「Total Number or Cores」がコア数 参考サイト様

【Unity】iOS で加速度センサを無効化してパフォーマンスを改善する

概要 iOS で加速度センサを使用しない場合、 Unity メニューの「File > Build Settings...」から 「Player Settings...」を開いて、iOS の Other Settings の中に存在する 「Accelerometer Frequency」を「Disabled」にすることで 少しだけパフォーマンスを…

【Unity】uGUI でドローコールを増やさずにカラーブレンドの方法を変更できる「UI_Color_Blend_example」紹介

はじめに 「UI_Color_Blend_example」を Unity プロダクトに導入することで uGUI でドローコールを増やさずにカラーブレンドの方法を変更できるようになります 使用例 シェーダやマテリアルを用意して使用する場合 SpriteAtlas を使用していてもドローコール…

【Unity】Unity 2018 以降の TextMesh Pro の FontAtlas は Inspector から更新できる

概要 Unity 2018 以降の TextMesh Pro の FontAtlas は Inspector で「Update Atlas Texture」ボタンを押すことで 前回生成した時の設定が反映された状態の Font Creator ウィンドウが表示されて FontAtlas を更新することができます

【おすすめスライド】「【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計」

スライド

【Unity】指定したコンポーネントがアタッチされたプレハブを検索できるエディタ拡張「FindObjects」紹介

はじめに 「FindObjects」を Unity プロジェクトに導入することで 指定したコンポーネントがアタッチされたプレハブを検索できるようになります 使い方 Unity メニューの「GameObject>Find...」を選択して 表示されたウィンドウの「Search For」に検索したい…

【Unity】指定したアセットに依存するすべてのアセットを取得できる「EditorUtility.CollectDependencies」

概要 EditorUtility.CollectDependencies を使用することで 指定したアセットに依存するすべてのアセットを配列で取得できます 例えば上記のような 3D モデルのプレハブに対して using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" …

【Unity】Lighting ウィンドウの Baked Global Illumination のオン・オフをエディタ拡張で変更する方法

概要 using UnityEditor; using UnityEditor.SceneManagement; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { Lightmapping.bakedGI = !Lightmapping.bakedGI; // GI の設定はシーンに依存するので変更を保存する…

【Unity】Lighting ウィンドウの Realtime Global Illumination のオン・オフをエディタ拡張で変更する方法

概要 using UnityEditor; using UnityEditor.SceneManagement; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { Lightmapping.realtimeGI = !Lightmapping.realtimeGI; // GI の設定はシーンに依存するので変更を保…

【Unity】各シーンの Global Illumination(GI)をデフォルトで無効にする方法

概要 Unity メニューの「Edit > Project Settings...」を選択して 「Editor」タブの「Default Behaviour Mode > Mode」を「2D」にする Mode が 2D の場合 Mode が 3D の場合 参考サイト様

【Unity】TextMesh Pro UGUI で Raycast Target をオフにする方法

概要 Unity 2018 であれば Inspector から普通に変更できる Unity 2017 であれば Inspector を Debug モードにしてから 変更できる

【バッチ】「'XXXX'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

概要 'XXXX'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 バッチファイルを動かそうとしたら上記のエラーが発生する現象に遭遇した 調べてみたところ、バッチファイルの改行コードが CRLF 以…

【Unity】指定したコンポーネントがアタッチされたプレハブを検索できるエディタ拡張「SearchForComponents.cs」紹介

はじめに https://forum.unity.com/threads/editor-want-to-check-all-prefabs-in-a-project-for-an-attached-monobehaviour.253149/ 「SearchForComponents.cs」を Unity プロジェクトに導入することで 指定したコンポーネントがアタッチされたプレハブを検…

【Unity】Windows で Unity エディタの Profiler を Android に接続する時に使用する IP アドレスを調べる方法

概要 Windows で Unity エディタの Profiler を Android に接続する際に Profiler の「Enter IP」から IP アドレスを指定して Android に接続する場合、 adb shell ip route Windows に Android を接続した状態で コマンドプロンプトで上記のコマンドを実行…

【Unity】Android 端末が Windows に認識されない場合

概要 上記サイト様の手順を踏んだら正常に認識されるようになりました