コガネブログ

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

【Unity】FPS、GC 発生回数、メモリ使用量を実機で確認できるプロファイラの UI「UniSimpleProfiler」を GitHub に公開しました

はじめに FPS、GC 発生回数、メモリ使用量を実機で確認できるプロファイラの UI 「UniSimpleProfiler」を GitHub に公開しました(実機なら GC Alloc は発生しません) バージョン Unity 2018.3.9f1 準備 UniSimpleProfiler は TextMesh Pro を使用するため…

【Unity】GC Alloc が発生しない Stack を使用できる「StackList」紹介

概要 「StackList」を Unity プロジェクトに導入することで GC Alloc が発生しない Stack を使用できるようになります 使用例 using Hont; using System.Collections.Generic; using UnityEngine; using UnityEngine.Profiling; public class Example : Mono…

【Unity】GC Alloc の発生が少ない Linq を使用できる「smooth.foundations」紹介

はじめに 「smooth.foundations」を Unity プロジェクトに導入することで GC Alloc の発生が少ない Linq を使用できるようになります 使用例 using Smooth.Slinq; using Smooth.Slinq.Context; using System.Linq; using UnityEngine; using UnityEngine.Pro…

【Unity】TextMesh Pro でモバイル向けのシェーダを使用する

概要 TextMesh Pro の FontAtlas などに含まれるマテリアルを選択して Shader を「TextMeshPro/Mobile」以下の物に変更することで モバイル向けのシェーダに切り替えることができます

【Unity】Scene ビュー同様にゲーム画面でミップマップレベルを可視化できる「DebugGPU」紹介

はじめに 「DebugGPU」を Unity プロジェクトに導入することで Scene ビュー同様にゲーム画面でミップマップレベルを可視化できるようになります 使用例 Scene ビュー Game ビュー 使い方 シーンのカメラに「DebugGPU」コンポーネントをアタッチして 「Scene…

【Unity】テクスチャのミップマップのバイアスを変更する方法

方法1 using UnityEditor; using UnityEngine; public sealed class Example : AssetPostprocessor { private void OnPostprocessTexture( Texture2D texture ) { var importer = AssetImporter.GetAtPath( assetPath ) as TextureImporter; importer.mipMap…

【Unity】Scene ビューでミップマップレベルを可視化する方法

概要 Scene ビューの「Shaded」を押して 「Mipmaps」を押すと ミップマップレベルを可視化できます 赤 描画密度が高い テクスチャ解像度が必要以上に大きい 青 描画密度が低い テクスチャ解像度を大きくしても良い 参考サイト様 https://radiumsoftware.tumb…

【Unity】モバイルでも高速に動く影シェーダ「PlannarShadowForUnity」紹介

はじめに 「PlannarShadowForUnity」はモバイルでも高速に動く影シェーダです 使用例 使い方 影を適用したいオブジェクトの Mesh Renderer の 「Cast Shadow」を「Off」にして、「Receive Shadows」をオフにしておきます 影を適用したいオブジェクトと同じメ…

【ReSharper】Unity におけるコードの問題点を見つける

はじめに ReSharper で Unity 連携を有効化すると、Unity において問題のあるコードに 警告の波線が表示されたり、ハイライト表示されるようになります この記事では、どのようなコードに警告の波線やハイライトが表示されるか紹介していきます 目次 はじめ…

【ReSharper】Unity においてパフォーマンスがあまり良くないコードを削除したり書き換えたりする

はじめに ReSharper で Unity 連携を有効化すると、 Unity においてパフォーマンスがあまり良くないコードを 削除したり書き換えたりしてくれるようになります Unity 連携の有効化 Unity 連携の有効化の方法は上記の記事で記載しております 使用例 Awake や …

【ReSharper】Unity においてパフォーマンスがあまり良くないコードをハイライト表示する

はじめに ReSharper で Unity 連携を有効化すると、 Unity においてパフォーマンスがあまり良くないコードを ハイライト表示して教えてくれるようになります Unity 連携の有効化 Unity 連携の有効化の方法は上記の記事で記載しております ハイライト表示の種…

【Unity】モバイルで高速に動作するモーションブラーを使用できる「Fast Mobile Camera Motion Blur」紹介($55.99)

はじめに 「Fast Mobile Camera Motion Blur」を Unity プロジェクトに導入することで モバイルで高速に動作するモーションブラーを使用できるようになります 使用例 使い方 シーンのカメラに「Fast Motion Blur」をアタッチして 「FastMotionBlur」マテリア…

【Unity】LUT が使用できる「Fast LUT」紹介($10)

はじめに 「Fast LUT」を Unity プロジェクトに導入することで LUT が使用できるようになります 使用例 適用前 適用後 使い方 LUT テクスチャを右クリックして 「Create > FastLUT > Convert 2D LUT Texture to FastLUT」を選択して Fast LUT 専用のアセット…

【Unity】Android アプリ開発で使用できるプロファイラがまとめられている公式ドキュメント

概要 上記の公式ドキュメントで Android アプリ開発で使用できるプロファイラがまとめられています

【おすすめスライド】「メモリと闘う者達」

スライド

【おすすめ記事】「Unityで設定できるテクスチャの圧縮フォーマットについて」

リンク

【Unity】モバイルでも高速に動作するカラーコレクション(LUT)、ブラー、ブルームが使用できる「Fast Mobile Post Processing」紹介($6.99)

はじめに 「Fast Mobile Post Processing」を Unity プロジェクトに導入することで モバイルでも高速に動作するカラーコレクション(LUT)、ブラー、 ブルームが使用できるようになります 使用例 適用前 適用後 カラーコレクション(LUT)、ブラー、ブルーム…

【Unity】円柱型、球形のビルボード(フォグ適用可)を使用できる「Ultimate Billboard」紹介($5)

はじめに 「Ultimate Billboard」を Unity プロジェクトに導入することで 円柱型、球形のビルボード(フォグ適用可)を使用できるようになります 使用例 マテリアルの Shader を「Sprites/UltimateBillboard」を変更すると使用できます 項目 内容 Use Fog フ…

【Unity】モバイルでも高速に動作するブルームのポストエフェクトが使用できる「Fast Bloom optimized for Mobile」紹介($4.99)

はじめに 「Fast Bloom optimized for Mobile」を Unity プロジェクトに導入することで モバイルでも高速に動作するブルームのポストエフェクトが 使用できるようになります 使用例 適用前 適用後 使い方 シーンのカメラに「Mobile Bloom」をアタッチして 「…

【Unity】モバイルでも高速に動作するブルーム、カラーコレクション、グレーディング、ビネットなどのポストエフェクトが使用できる「Sleek Render: Mobile Post Processing Stack」紹介($19)

はじめに 「Sleek Render: Mobile Post Processing Stack」を Unity プロジェクトに導入することで モバイルでも高速に動作するブルーム、カラーコレクション、 グレーディング、ビネットなどのポストエフェクトが使用できるようになります 使用例 適用前 ブ…

【Unity】改訂版のモバイル向けの加算シェーダ「Mobile-Particle-Add-Revised.shader」紹介

使用例 適用前 適用後 スクリプト 使い方 マテリアルの Shader を「Custom/Mobile/Particles/Additive」に変更すると使用できます

【Unity】モバイル向けに設計された Standard Shader を使用できる「Standard Shader (Mobile)」紹介

はじめに 「Standard Shader (Mobile)」を Unity プロジェクトに導入することで モバイル向けに設計された Standard Shader を使用できるようになります 使い方 マテリアルの Shader を「Mobile/Standard」に変更することで 使用できるようになります

【Unity】要素を使い回すスクロールを実装できる「Scroll - Mutate - Infinity - ZenUI」紹介

はじめに 「Scroll - Mutate - Infinity - ZenUI」を Unity プロジェクトに導入することで 要素を使い回すスクロールを実装できるようになります 目次 はじめに 目次 使用例 特徴 基本的な使い方 スクリプトの作成 シーンのオブジェクトの作成 要素の追加、…

【おすすめスライド】「【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!」

スライド

【Unity】コンポーネントをアタッチするだけでアウトラインシェーダが使用できる「Outline Effect But It's Faster」紹介

はじめに 「Outline Effect But It's Faster」を Unity プロジェクトに導入することで コンポーネントをアタッチするだけでアウトラインシェーダが使用できるようになります 使用例 適用前 適用後 使い方 シーンのカメラに「Outline Effect」をアタッチしま…

【Unity】デリゲートだと 112B の GC Alloc が発生するがローカル関数だと GC Alloc が発生しない

概要 using System; using UnityEngine; using UnityEngine.Profiling; public class Test : MonoBehaviour { private void Update() { var samplerA = CustomSampler.Create( "TEST A" ); samplerA.Begin(); Func<int, int> funcA = n => n + 1; funcA( 25 ); sampler</int,>…

【Unity】Post Processing Stack v2 で Bloom を使用した場合と自作した Bloom を使用した場合の Android 実機での FPS の違い(自分用メモ)

検証環境 Unity 2018.3.11f1 Post Processing 2.1.6 P10 lite 検証結果 Bloom 無し Post Processing Stack v2 の Bloom 自作した Bloom 補足 「自作した Bloom」の検証には下記のシェーダを使用させていただきました

【Unity】「Shader Graph Example Library」のサンプルシーンを Android で実行した場合の FPS(自分用メモ)

概要 「Shader Graph Example Library」のサンプルシーンを Android で実行した場合に FPS がどうなるか気になったので調査してみました (時間をかけて検証したわけではないので、あくまで参考程度のモノになります) 検証環境 Unity 2018.3.11f1 Lightweig…

【Unity】ハードエッジの 3D モデルでもキレイに表示できて、隠れている部分も表示できるアウトラインシェーダ「Facepunch.Highlight」紹介

はじめに 「Facepunch.Highlight」はハードエッジの 3D モデルでもキレイに表示できて、 隠れている部分も表示できるアウトラインシェーダです 使用例(引用) 使用例 適用前 適用後 使い方 「HighlightImageEffect」マテリアルでアウトラインのサイズや色を…

【Unity】クラスと構造体それぞれのインスタンスを object 型にキャストした時の GC Alloc の違い

クラス using UnityEngine; public class Example : MonoBehaviour { private class Hoge { } private Hoge hoge = new Hoge(); private void Update() { object obj = hoge; Hoge hoge2 = ( Hoge )obj; } } クラスの場合は GC Alloc は発生しない 構造体 us…