コガネブログ

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

【Unity】スプライトの Custom Outline を設定した場合としなかった場合の処理速度比較

検証内容 30,000 個のスプライトをシーンに配置 スプライトの Custom Outline を設定した場合としなかった場合の FPS を比較 検証環境 Unity 2021.3.1f1 Custom Outline を設定した場合 36 ~ 39 FPS Custom Outline を設定しなかった場合 38 ~ 42 FPS 結論 …

【Unity】BoxCollider2D と CircleCollider2D の処理速度比較

検証内容 20,000 個のスプライトをシーンに配置 スプライトに BoxCollider2D をつけた場合と CircleCollider2D をつけた場合の FPS を比較 検証環境 Unity 2021.3.1f1 BoxCollider2D の場合 54 ~ 57 FPS CircleCollider2D の場合 55~ 56 FPS 結論 処理速度に…

【Unity】スプライトを非表示にするだけなら非アクティブにするより enabled をオフにする方が処理が速い

検証内容 20,000 個のスプライトをシーンに配置 表示の有効無効を切り替えるために毎フレーム GameObject.SetActive を使用した場合と SpriteRenderer.enabled を使用した場合の FPS を比較 検証環境 Unity 2021.3.1f1 GameObject.SetActive の場合 0 FPS Sp…

【Unity】シンプルなテキストは TextMesh Pro を使わずにスプライトフォントを自作した方が処理が速い

検証内容 上記のように 0.1 秒ごとに表示が変化するテキストを シーンに 5,000 個配置する場合に TextMesh Pro で表示した時と自作のスプライトフォントで表示した時の FPS を比較 検証環境 Unity 2021.3.1f1 TextMesh Pro の場合 6 FPS 自作のスプライトフ…

【Unity】シンプルなスプライトアニメーションは Animator を使わずに自作した方が処理が速い

検証内容 10,000 個のスプライトをシーンに配置 Unity の Animator を使用してスプライトアニメーションを再生した場合と、 自作の C# スクリプトでスプライトアニメーションを再生した場合の FPS を比較 検証環境 Unity 2021.3.1f1 Unity の Animator を使…

【Unity】GIF 動画を再生できる「mgGIF」紹介

はじめに 「mgGIF」を Unity プロジェクトに導入することで GIF 動画を再生できるようになります 使用例 クイックスタート Quad オブジェクトに Animated Textures コンポーネントをアタッチすると StreamingAssets フォルダ内の GIF 動画を再生できます htt…

【Unity】2D SpriteShape で破線を表示するサンプル「Unity Dashed (Dotted) Sprite Shape」紹介

はじめに 「Unity Dashed (Dotted) Sprite Shape」は 2D SpriteShape で破線を表示するサンプルです 使用例 クイックスタート 2D SpriteShape を導入している Unity プロジェクトに リポジトリで公開されているアセットを導入して 「DemoScene」を開くことで…

【Unity】スプライトのメッシュの調整ができる「Unity-SpriteAssist」紹介

はじめに 「Unity-SpriteAssist」を Unity プロジェクトに導入することで スプライトのメッシュの調整ができるようになります 使用例 Project ウィンドウでスプライトを選択して Inspector でパラメータを調整することで スプライトのメッシュを調整できます…

【Unity】ライトの影響を受けるスプライトを表示できる「Unity Mesh Sprites」紹介

はじめに 「Unity Mesh Sprites」を Unity プロジェクトに導入することで ライトの影響を受けるスプライトを表示できるようになります 使用例 クイックスタート ゲームオブジェクトに「Mesh Sprite」をアタッチして 「Sprite」に表示したいスプライトを設定…

【おすすめスライド】「SpriteAtlasの落とし穴」

スライド

【Unity】Sprite で Radial 360 の fillAmount を設定できる「FilledSpriteShader」紹介

はじめに 「FilledSpriteShader」を Unity プロジェクトに導入することで Sprite で Radial 360 の fillAmount を設定できるようになります 使用例 使い方 Sprite Renderer のマテリアルに「SampleMaterial」を設定します (もしくは Shader が「Unlit/Fille…

【Unity】シンプルな 2D のキャラクターコントローラを使用できる「2D Character Controller Tutorial」紹介

はじめに 「2D Character Controller Tutorial」を Unity プロジェクトに導入することで シンプルな 2D のキャラクターコントローラを使用できるようになります 使用例 使い方 操作したいスプライトに「CharacterController2D」をアタッチします これで、左…

【Unity】雷のようなシェーダを使用できる「Unity-Shaders」紹介

はじめに 「Unity-Shaders」を Unity プロジェクトに導入することで 雷のようなシェーダを使用できるようになります 使用例 使い方 マテリアルの Shader を「Custom/Lightning」に変更して各テクスチャを設定して、 このマテリアルをスプライトに割り当てる…

【Unity】影の影響を受けるスプライトアニメーションを実装できる「Flipbook Surface Shader for Unity」紹介

はじめに 「Flipbook Surface Shader for Unity」を Unity プロジェクトに導入することで 影の影響を受けるスプライトアニメーションを実装できるようになります 使用例 使い方 マテリアルの Shader を「Custom/SurfaceSpriteSheet」に変更することで使用で…

【Unity】スプライト用のグレーアウト、アウトライン、斜めシェーダを使用できる「UnityShaderEffect」紹介

はじめに 「UnityShaderEffect」を Unity プロジェクトに導入することで スプライト用のグレーアウト、アウトライン、斜めシェーダを使用できるようになります 使用例 適用前 適用後 使い方 「Assets/2D/Sprite」フォルダ内のマテリアルやスクリプトを使用し…

【Unity】スプライトにアウトラインを表示できる「SpriteOutline」紹介

はじめに 「SpriteOutline」を Unity プロジェクトに導入することで スプライトにアウトラインを表示できるようになります 使用例 適用前 適用後 使い方 マテリアルの Shader を「Sprites/SpriteOutline」に変更して スプライトに設定することで使用できます…

【Unity】Photoshop の選択範囲ようなアウトラインを使用できる「marching-ants-outline.shader」紹介

はじめに 上記のサイト様が公開されているシェーダを使用することで Photoshop の選択範囲ようなアウトラインを使用できるようになります 使用例 使い方 上記のシェーダを Unity プロジェクトに導入し、 マテリアルを作成して Shader を「Sprites/Outline (M…

【Unity】スプライトでアウトラインを使用できる「Sprites-Outline」紹介

はじめに 「Sprites-Outline」を Unity プロジェクトに導入することで スプライトでアウトラインを使用できるようになります 使用例 適用前 適用後 使い方 スプライトに「SpriteOutline」をアタッチすることで使用できます

【Unity】シンプルな 2D アクション用のキャラクター制御システム「CharacterController2D」紹介

はじめに 「CharacterController2D」を Unity プロジェクトに導入することで シンプルな 2D アクション用のキャラクター制御システムが使用できるようになります 使用例 クイックスタート 操作したいスプライトに下記のコンポーネントをアタッチします Chara…

【Unity】シンプルな 2D のキャラクターコントローラを使用できる「CharacterController2D」紹介

はじめに 「CharacterController2D」を Unity プロジェクトに導入することで シンプルな 2D のキャラクターコントローラを使用できるようになります 使用例 使い方 操作したいスプライトに「CharacterController2D」をアタッチします また、空のゲームオブジ…

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

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

【Unity】TexturePacker でパッキングしたテクスチャを SpriteRenderer や uGUI の Image で使用する

はじめに TexturePacker でパッキングしたテクスチャは SpriteRenderer や uGUI の Image で使用することができます 検証環境 Unity 2018.3.7f1 TexturePacker 4.12.1 準備 上記サイトから TexturePacker をインストールします また、 「TexturePacker Impor…

【Unity】指定した SpriteAtlas をパックできる「SpriteAtlasUtility.PackAllAtlases」

概要 using UnityEditor; using UnityEditor.U2D; using UnityEngine.U2D; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var path = "【SpriteAtlas のパス】"; var atlas = AssetDatabase.LoadAssetAtPath<SpriteAtlas>( pat</spriteatlas>…

【Unity】Unity プロジェクト内のすべての SpriteAtlas をパックできる「SpriteAtlasUtility.PackAllAtlases」

概要 using UnityEditor; using UnityEditor.U2D; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { SpriteAtlasUtility.PackAllAtlases( BuildTarget.Android ); } } SpriteAtlasUtility.PackAllAtlases を使用する…

【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】2D で斬撃エフェクトを実装できる「Simple Sprite Trails」紹介

はじめに 「Simple Sprite Trails」を Unity プロジェクトに導入することで 2D で斬撃エフェクトを実装できるようになります 使用例 使い方 斬撃エフェクトを表示したいスプライトに「Trail」という名前の子オブジェクトを作成して 「MeleeWeaponTrail」をア…

【Unity】2D スプライトの移動の軌跡を描画できる「Sprite Ghost Trail Renderer」紹介

はじめに 「Sprite Ghost Trail Renderer」を Unity プロジェクトに導入することで 2D スプライトの移動の軌跡を描画できるようになります 使用例 使い方 「SpriteGhostTrailRenderer」をアタッチすることで使用できます

【Unity】スプライトでノーマルマップやスペキュラマップなどが使用できる「Uber Shader for Sprites」紹介

はじめに 「Uber Shader for Sprites」を Unity プロジェクトに導入することで スプライトでノーマルマップやスペキュラマップなどが使用できるようになります 使用例 クイックスタート この記事ではスプライトでノーマルマップを使用する方法を紹介していき…

【Unity】スプライトや uGUI の Image で使用できる色の反転シェーダを導入する その2

使用例 使い方 上記のシェーダを Unity プロジェクトに導入して マテリアルを作成して Shader を「Particles/Negative」に変更して そのマテリアルをスプライトや uGUI の Image に設定します すると、そのスプライトや Image が重なっている箇所の色が反転…