コガネブログ

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

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

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

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

【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 モードにしてから 変更できる

【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 に認識されない場合

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

【Unity】Windows でコマンドラインから Unity ライセンスを返却する方法

概要 "C:\Program Files\Unity\Hub\Editor\2018.3.7f1\Editor\Unity.exe" -quit -batchmode -returnlicense -returnlicense オプションを使用する 参考サイト様

【Unity】Sprite Atlas を使用していても Frame Debugger でドローコールがまとめられていない場合

概要 Sprite Atlas を使用している状態で Frame Debugger を見てもドローコールがまとめられていない場合、 Unity の「Project Settings > Editor」の 「Sprite Packer > Mode」が 「Always Enabled」になっているのであれば、 Unity エディタ再生中に Frame…

【Unity】パッキング対象のスプライトが Sprite Atlas に収まりきらなかった場合どうなるか

概要 パッキング対象のスプライトが多すぎたり大きすぎたりした場合、 「#1」「#2」のように連番付けされた別の Sprite Atlas にパッキングされます 別の Sprite Atlas にパッキングされるため Frame Debugger を見てみると描画がまとめられていない (ドロ…

【Unity】Unity 2018.3 新機能 uGUI の Image で不透明部分のみを描画できるようになった

概要 uGUI の Image の Inspector に「Use Sprite Mesh」という項目が追加されました この項目をオンにすると不透明部分のみを描画できるようになります 使用例 Use Sprite Mesh オフ 透明部分も描画されています Use Sprite Mesh オン 不透明部分のみが描画…

【Unity】uGUI の Image で不透明部分のみを描画できる「CutoutImage」紹介

はじめに 「CutoutImage」を Unity プロジェクトに導入することで uGUI の Image で不透明部分のみを描画できるようになります (Unity 2018.3 以降であれば標準機能で同様の内容が実現できます) 使用例 uGUI の Image Cutout Image 不透明部分のみが描画さ…

【Unity】3D モデルをスライスできる「EzySlice」紹介

はじめに 「EzySlice」を Unity プロジェクトに導入することで 3D モデルをスライスできるようになります 使用例 スライス前 スライス後 使い方 using EzySlice; using UnityEngine; public class Example : MonoBehaviour { public GameObject m_cube; priv…

【おすすめスライド】「Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]」

スライド

【おすすめスライド】「スマホゲームのチート手法とその対策 [DeNA TechCon 2019]」

スライド