コガネブログ

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

【Unity】Unity 2019.3 で UIElements を使用してエディタの色を変更してみる

概要 上記のような「common.uss」という名前のファイルを Unity 2019.3 のプロジェクトの 「Assets/Editor/StyleSheets/Extensions」フォルダに追加することで Unity エディタのいくつかの UI の色を変更することができます 例えば common.uss で AppCommand…

【Unity】LINQ の結果を匿名型ではなく ValueTuple で受け取る

概要 using System.Linq; using UnityEngine; public class Example : MonoBehaviour { private static string[] m_list = { "フシギダネ", "フシギソウ", "フシギバナ", }; private void Update() { // 匿名型 var r1 = m_list.Select( c => new { name = c…

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