コガネブログ

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

2019-01-01から1年間の記事一覧

【Rider】燃えるようなタイピングができる「Power Mode II」紹介

はじめに 「Power Mode II」を導入することで燃えるようなタイピングができるようになります 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「Power Mode II」の「Install」を選択します 使用例

【Rider】ミニマップを表示できる「CodeGlance」紹介

はじめに 「CodeGlance」を導入することでミニマップを表示できます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「CodeGlance」の「Install」を選択します 使用例

【Rider】マクロを使ってファイル保存時にコードの再フォーマットを実行できるようにする

概要 Rider メニューの「編集 > マクロ > マクロの記録を開始」を押してから Ctrl + Alt + Enter -> Ctrl + S を押します 「編集 > マクロ > マクロの記録を停止」を押します 適当な名前をつけてマクロを保存します(例:cleanup_on_save) 「ファイル > 設…

【Rider】関数の複雑度を可視化できる「CognitiveComplexity」紹介

はじめに 「CognitiveComplexity」を導入することで関数の複雑度を可視化できます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「CognitiveComplexity」の「Install」を選択します 使用例 複雑な関数…

【Rider】マウス操作した際に該当するショートカットキーを教えてくれる「Key Promoter X」紹介

はじめに 「Key Promoter X」を導入することで マウス操作した際に該当するショートカットキーを教えてくれます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「Key Promoter X」の「Install」を選択し…

【Rider】大/小文字変換などの文字列操作ができる「String Manipulation」紹介

はじめに 「String Manipulation」を導入することで 大/小文字変換などの文字列操作ができます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「文字列操作」の「Install」を選択します 使用例 変換した…

【Rider】インデントに色を付けられる「Indent Rainbow」紹介

はじめに 「Indent Rainbow」を導入することでインデントに色を付けられます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「Indent Rainbow」の「Install」を選択します 使用例 適用前 適用後

【Rider】括弧に色を付けられる「Rainbow Brackets」紹介

はじめに 「Rainbow Brackets」を導入することで括弧に色を付けられます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「Rainbow Brackets」の「Install」を選択します 使用例 適用前 適用後

【Unity】構造体をインターフェイスで受け取ると GC Alloc が発生するが Generic 制約でインターフェイスを指定すると発生しない

概要 using UnityEngine; public interface ICharacter { } public struct Character : ICharacter { } public class Example : MonoBehaviour { private Character m_character = new Character(); private void Update() { Hoge1( m_character ); } privat…

【Unity】System.Enum で引数を受け取ると GC Alloc が発生するが Generic 制約 で Enum を指定すると発生しない

概要 using System; using UnityEngine; public class Example : MonoBehaviour { private enum Type { GRASS, FIRE, WATER, } private void Update() { Hoge1( Type.FIRE ); } private void Hoge1( Enum value ) { } } System.Enum で引数を受け取ると GC A…

【Unity】ローカル変数をキャプチャする場合、その処理が実行されなくても GC Alloc は発生する

概要 using System.Linq; using UnityEngine; public class Example : MonoBehaviour { private static string [] m_list = { "フシギダネ", "フシギソウ", "フシギバナ", }; private void Update() { var name = "ピカチュウ"; // ここで return するので r…

【Visual Studio】ラムダ式の => にカーソルを重ねるとキャプチャされている変数を確認できる

概要 ラムダ式の => にカーソルを重ねるとキャプチャされている変数を確認できます 参考サイト様 https://www.slideshare.net/xin9le/dotnetperformancetips-170268354

【Unity】LINQ の拡張メソッドを自作して GC Alloc を減らす方法

概要 using System.Linq; using UnityEngine; public class Example : MonoBehaviour { private static string[] m_list = { "フシギダネ", "フシギソウ", "フシギバナ", }; private void Update() { var name = "ピカチュウ"; var result = m_list.Where( c…

【Unity】ゲームのパフォーマンスに影響を与えるソースコードやプロジェクトの設定を分析できる「ProjectAuditor」紹介

はじめに 「ProjectAuditor」を Unity プロジェクトに導入することで ゲームのパフォーマンスに影響を与えるソースコードやプロジェクトの設定を 分析できるようになります (この記事を書いた時点ではまだ実験中の機能とのことです) 使い方 Unity メニュー…

【Unity】Scene ビューに Cube や Sphere やスプライトのギズモを簡単に表示できる「DrawGizmo」紹介

はじめに 「DrawGizmo」を Uniy プロジェクトに導入することで Scene ビューに Cube や Sphere やスプライトのギズモを簡単に表示できるようになります 使用例 Cube Sphere スプライト

【Fork】git クライアントの Fork で WinMerge を使用する方法

概要 Fork メニューの「File > Preferences...」から 「Integration」タブを選択して「External Diff Tool」の項目を下記のように設定します Diff Tool:Custom Diff Tool Path:WinMergeU.exe のファイルパス Arguments: "$REMOTE" "$LOCAL" -e 引数に -e …

【Unity】エディタで Game ビューのキャプチャを簡単に撮ることができる「UniEditorScreenshot」紹介

はじめに 「UniEditorScreenshot」を Unity プロジェクトに導入することで エディタで Game ビューのキャプチャを簡単に撮ることができます 使い方 Unity メニューの「Window > Capture Editor」を選択します そして、表示されたウィンドウで「Take screensh…

【Unity】メソッドチェーンでリッチテキストを設定できる「RichText for Unity」紹介

はじめに 「RichText for Unity」を Unity プロジェクトに導入することで メソッドチェーンでリッチテキストを設定できるようになります 使用例 var str = "ピカチュウ"; // 通常 Debug.Log( $"<color=purple><size=17><b><i>{str}</i></b></size></color>"); // RichText for Unity Debug.Log( $"{str.Italic().B…

【ReSharper】コードの問題を一覧で確認する方法

概要 Visual Studio メニューの「RESHARPER > Inspect」から 「Code Issues in Solution」や「Code Issues in Current Project」を押すと ソリューションやプロジェクト内のコードの問題を一覧で確認できます 参考サイト様

【ReSharper】一時変数を作成する方法

概要 Ctrl + Shift + R を押して「Introduce Variable」を選択すると一時変数を作成できます 参考サイト様

【ReSharper】フォーマット時に基底クラスやインターフェイスの一覧を改行する方法

概要 ReSharper のオプションから 「Code Editing > C# > Formatting Style > Line Breaks and Wrapping」を選択して 「Wrap extends/implements list」を「Chop always」にすることで フォーマット時に基底クラスやインターフェイスの一覧を改行できます

【Unity】Gist からソースコードをダウンロードしてプロジェクトに追加できる「GistImporter.cs」紹介

ソースコード 使い方 上記のソースコードを Unity プロジェクトの「Assets/Gists」フォルダに追加して Gist の URL をクリップボードにコピーした状態で Unity メニューの「Tools > Import Gist」を押すと Gist からソースコードをダウンロードしてプロジェ…

【ReSharper】フォーマット時に関数呼び出しの引数の最初の括弧を改行する方法

概要 ReSharper のオプションから 「Code Editing > C# > Formatting Style > Line Breaks and Wrapping」を選択して 「Prefer wrap before "(" in invocation」をオンにすることで フォーマット時に関数呼び出しの引数の最初の括弧を改行できます

【ReSharper】フォーマット時に関数呼び出しの引数がn個以上であれば改行する方法

概要 ReSharper のオプションから 「Code Editing > C# > Formatting Style > Line Breaks and Wrapping」を選択して 「Arrangement of Invocations」の Wrap invocation arguments Chop if long or multiline に変更 Max invocation arguments on a single …

【ReSharper】フォーマット時に関数定義の引数の最初の括弧を改行する方法

概要 ReSharper のオプションから 「Code Editing > C# > Formatting Style > Line Breaks and Wrapping」を選択して 「Prefer wrap before "(" in declaration」をオンにすることで フォーマット時に関数定義の引数の最初の括弧を改行できます

【ReSharper】フォーマット時に関数定義の引数がn個以上であれば改行する方法

概要 ReSharper のオプションから 「Code Editing > C# > Formatting Style > Line Breaks and Wrapping」を選択して 「Arrangement of Method Signatures」の Wrap formal parameters Chop if long or multiline に変更 Max formal parameters on a single …

【ReSharper】関数呼び出しですべての引数を名前付き引数にする方法

概要 引数を選択した状態で Ctrl + . を押して 「Add missing argument name XX > Add missing argument name specifications in this method call」を押します 参考サイト様

【Unity】Collision で CompareTag を使用できるようにする拡張メソッド

ソースコード using UnityEngine; namespace MyProject { public static class CollisionExt { public static bool CompareTag( this Collision self, string tag ) { return self.gameObject.CompareTag( tag ); } } } 使用例 適用前 private void OnCollis…

【Unity】Collision2D で CompareTag を使用できるようにする拡張メソッド

ソースコード using UnityEngine; namespace MyProject { public static class Collision2DExt { public static bool CompareTag( this Collision2D self, string tag ) { return self.gameObject.CompareTag( tag ); } } } 使用例 適用前 private void OnCo…

【Unity】他のオブジェクトの OnCollisionEnter や TriggerEnter などのイベントを検知できる「Unity Event Bridge」紹介

はじめに 「Unity Event Bridge」を Unity プロジェクトに導入することで 他のオブジェクトの OnCollisionEnter や TriggerEnter などのイベントを 検知できるようになります 使用例 using EventBridge; using UnityEngine; public class Example : MonoBeha…