コガネブログ

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

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