コガネブログ

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

【Unity】EditorGUIUtility.IconContent で使用できるアイコンを一覧で表示できる「UnityEditorIcons」紹介

はじめに 「UnityEditorIcons」を Unity プロジェクトに導入することで EditorGUIUtility.IconContent で使用できるアイコンを一覧で表示できるようになります 使用例 Unity メニューの「Tools > Editor Icons」を押すことで EditorGUIUtility.IconContent …

【Unity】エディタ上でサスペンドレジュームの動作確認をする方法

概要 Project Settings で「Player」の「Run In Background」をオフにした状態で Unity エディタにフォーカスを合わせたり外したりすれば using UnityEngine; public sealed class Example : MonoBehaviour { private void OnApplicationPause( bool pauseSt…

【Unity】EditorWindow 内にサブウィンドウを表示できる「UnitySubWindow」紹介

はじめに 「UnitySubWindow」を Unity プロジェクトに導入することで EditorWindow 内にサブウィンドウを表示できるようになります 使用例 using UnityEditor; using UnityEngine; internal sealed class Example : MDIEditorWindow { [MenuItem( "Tools/Hog…

【Unity】ゲーム実行中にコンポーネントのパラメータを EditorWindow に表示できる「PlayMode Inspector for Unity」紹介

はじめに 「PlayMode Inspector for Unity」を Unity プロジェクトに導入することで ゲーム実行中にコンポーネントのパラメータを EditorWindow に表示できるようになります 使用例 using Oddworm.Framework; using UnityEngine; internal sealed class Exam…

【Unity】VSCode でデバッグできなくなった場合の対処方法

概要 VSCode でデバッグを開始しようとしたら 「環境の選択」に「Unity Debugger」が表示されず、デバッグできない状況に遭遇した 自前で launch.json を用意してデバッグを開始しようとしても error while processing request 'launch' (exception: オブジ…

【Unity】シーンを開き直した時に前回の階層の状態を復元できる「Scene Keeper」紹介

はじめに 「Scene Keeper」を Unity プロジェクトに導入することで シーンを開き直した時に前回の階層の状態を復元できるようになります 使用例 通常ならシーンを開き直した時に階層がすべて閉じた状態になりますが 「Scene Keeper」を導入するとシーンを開…

【Unity】変数の値を閲覧したり関数を実行したりできる「Debug Panel」紹介

はじめに 「Debug Panel」を Unity プロジェクトに導入することで 変数の値を閲覧したり関数を実行したりできるようになります 使用例 using BrunoMikoski.DebugTools.Core.Attributes; using UnityEngine; [DebuggableClass( "Examples" )] internal sealed…

【Unity】Windows / macOS 向けビルドでウィンドウや背景を透過できる「UniWindowController」紹介

はじめに 「UniWindowController」を Unity プロジェクトに導入することで Windows / macOS 向けビルドでウィンドウや背景を透過できるようになります 使用例 クイックスタート 「UniWindowController」プレハブをシーンに配置して 配置したインスタンスの「…

【Unity】キャンバス内のオブジェクトを四角形で可視化できる「Unity Canvas Visualizer」紹介

はじめに 「Unity Canvas Visualizer」を Unity プロジェクトに導入することで キャンバス内のオブジェクトを四角形で可視化できるようになります 使用例 クイックスタート Canvas オブジェクトに「Canvas Visualizer」をアタッチします

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

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

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

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

【Unity】GUIStyle を ScriptableObject で確認しながら使用できる「Editor Styles Scriptable」紹介

はじめに 「Editor Styles Scriptable」を Unity プロジェクトに導入することで GUIStyle を ScriptableObject で確認しながら使用できるようになります 使用例 EditorStyleScriptable で使用したい GUIStyle を確認して using UnityEditor; using UnityEngi…

【Unity】簡単にパラメータのデバッグ表示ができる「Debug Viewer」紹介

はじめに 「Debug Viewer」を Unity プロジェクトに導入することで 簡単にパラメータのデバッグ表示ができるようになります 使用例 using DebugViewer; using UnityEngine; public class PlayerHealth : MonoBehaviour { [Debug( "Player", "Max Health" )] …

【Unity】エディタの各ウィンドウの最小サイズを 0, 0 にできる「Magic Layout」紹介

はじめに 「Magic Layout」を Unity プロジェクトに導入することで エディタの各ウィンドウの最小サイズを 0, 0 にできるようになります 使用例

【Unity】ゲームオブジェクトが持つコンポーネントの private な変数やプロパティの編集や関数の実行ができる「Sidekick Inspection Tools for Unity」紹介

はじめに 「Sidekick Inspection Tools for Unity」を Unity プロジェクトに導入することで ゲームオブジェクトが持つコンポーネントの private な変数やプロパティの編集や 関数の実行ができるようになります 使用例 using UnityEngine; internal sealed cl…

【Unity】Project ウィンドウに Git のステータスを表示できる「GitStatus」紹介

はじめに 「GitStatus」を Unity プロジェクトに導入することで Project ウィンドウに Git のステータスを表示できるようになります 使用例

【Unity】UI で六角形タイル状のレイアウトを使用できる「HexagonalUI」紹介

はじめに 「HexagonalUI」を Unity プロジェクトに導入することで UI で六角形タイル状のレイアウトを使用できるようになります 使用例 クイックスタート HexLayoutGroup をアタッチすることで使用できます

【Unity】UI でアウトラインや後光を実装できる「UIOutline」紹介

はじめに 「UIOutline」を Unity プロジェクトに導入することで UI でアウトラインや後光を実装できるようになります 使用例 クイックスタート 「UI Outline」コンポーネントをゲームオブジェクトにアタッチして 各種パラメータを設定することで使用できます…

【Unity】ディープリンクで Unity エディタのシーンを開いたりできる「Deeplink – Set up deep links into the Unity editor」紹介

はじめに 「Deeplink – Set up deep links into the Unity editor」を Unity プロジェクトに導入することで ディープリンクで Unity エディタのシーンを開いたりできるようになります 使用例 using Needle.Deeplink; using UnityEditor; using UnityEditor.S…

Unity1Week お題「ちゅう」でアクションゲーム「シロペンロード」を公開しました!

紹介動画 空中に描いた線を足場にしてゴールを目指す2Dアクションゲーム「シロペンロード」を公開しました!(全40ステージ)https://t.co/jn6AfyUoyc#unity1week #unityroom pic.twitter.com/my4GKwuWyL— baba_s (@baba_s_) 2021年9月12日 ゲームはこちら h…

【Unity】ReSharper のキーワードハイライトが正常に動作していない場合

概要 Visual Studio を閉じた状態で Unity プロジェクトのフォルダに存在する .vs フォルダ すべての .csproj ファイル .sln ファイル を削除してから Unity から Visual Studio を開くと キーワードハイライトが正常に動作するようになる

【Unity】Unity 起動時に「Enter Safe Mode?」と表示される場合

はじめに The project you are opening contains compilation errors. Entering Safe Mode allows you to resolve these errors without waiting for the rest of your project to import. If you select Ignore (not recommended), your project will conti…

【Unity】Visual Studio で MonoBehaviour などの Unity の機能を認識しない場合

はじめに Visual Studio で MonoBehaviour などの Unity の機能を認識せず ソリューションエクスプローラーでも 「このプロジェクトは移行する必要があります」 と表示されて正しく認識されない場合は Visual Studio に Unity 向けの機能がインストールされ…

【Unity】Visual Studio で MonoBehaviour などの Unity の機能が認識されなくなった場合

はじめに Visual Studio で MonoBehaviour などの Unity の機能が認識されなくなった場合 Visual Studio のプロジェクトファイルやソリューションファイルが 破損している可能性があります 対処方法 Visual Studio を終了した状態で Unity プロジェクトのフ…

【C#】値をスワップする拡張メソッドを自作する

C#

ソースコード public static class GenericExtensions { public static void Swap<T>( ref this T a, ref T b ) where T : struct { var tmp = a; a = b; b = tmp; } } 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Awake()</t>…

【Unity】UniRx の MessageBroker で Pub / Sub を実装する方法

通知用のクラスや構造体を用意 // スコアが加算されたことを通知するクラス public class ScoreAddSignal { public int Score { get; set; } } イベント発行側の実装 public class Example : MonoBehaviour { private void Update() { // スペースキーが押さ…

【Unity】Uncaught undefined - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.

概要 Uncaught undefined - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch. WebGL ビルドしたゲームで例外が発生した時に ブラウザの Console…

【Unity】Unity プロジェクトに存在する Assembly Definitions を検索する方法

概要 Project ウィンドウの検索欄に t:AssemblyDefinitionAsset と入力する

【Unity】Hierarchy にツリー構造の線を表示するエディタ拡張

ソースコード 使用例

【C#】値をスワップする関数を自作する

C#

ソースコード public static class GenericUtils { public static void Swap<T>( ref T a, ref T b ) { var tmp = a; a = b; b = tmp; } } 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { int a = 1; int b = 2; Ge</t>…