コガネブログ

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

2019-09-01から1ヶ月間の記事一覧

【Rider】Unity の Console を Rider 上に表示する方法

概要 Rider 上部の Unity アイコンを押して「Show Unity Log Window」を選択すると Rider 上で Unity の Console を確認できるようになります スタックトレースのファイル名をクリックすると、 ソースコードの該当箇所にジャンプすることもできます

【Rider】Rider から Unity を再生、一時停止、停止、ステップ実行する方法

概要 Rider 上部のボタンは Unity エディタのこれらのボタンと同じ機能を持つため、 Rider から Unity を再生、一時停止、停止、ステップ実行することができます まだ Rider を Unity にアタッチしていない場合は使用できません Unity アイコンを押して「Att…

【Rider】Unity の連携機能が正常に動作していない場合の対処方法

概要 Rider メニューの「File > Settings」を選択して 「Plugins」を開いて検索欄に「Unity」と入力して 表示された「Unity Support」を選択して「Enable」ボタンを押して「Save」を押します あとは、Rider を再起動すると Unity の連携機能が正常に動作する…

【ReSharper】コードを生成した時に NotImplementedException を付与しないようにする方法

概要 ReSharper ではデフォルトではコードを生成した時に throw new NotImplementedException (); が付与されますが、 Visual Studio メニューの「RESHARPER > Options」から 「Code Editing > Members Generation」を選択して 「Generated member default b…

【C#】可変長引数を使用できる Enumerable.Concat

ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExt { public static IEnumerable<T> Concat<T> ( this IEnumerable<T> first, params T[] second ) { return Enumerable.Concat( first, second ); } } 使用例 </t></t></t>…

【C#】シーケンスの要素を条件を満たすものと満たさないものに分ける拡張メソッド

ソースコード using System; using System.Collections.Generic; public static class IEnumerableExt { public static Tuple<IEnumerable<T>, IEnumerable<T>> Partition<T> ( this IEnumerable<T> self, Func<T, bool> predicate ) { var ok = new List<T>(); var ng = new List<T>(); foreach ( v</t></t></t,></t></t></t></ienumerable<t>…

【C#】SelectMany( c => c ) の記述を簡略化する拡張メソッド

ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExt { public static IEnumerable<T> Flatten<T> ( this IEnumerable<IEnumerable<T>> self ) { return self.SelectMany( c => c ); } } 使用例 通常 foreach ( var n in list</ienumerable<t></t></t>…

【C#】Dictionary から最大値や最小値を持つ要素を検索する方法

方法1 using System; using System.Collections.Generic; using System.Linq; public static class Program { private static void Main() { var table = new Dictionary<string, int> { { "フシギダネ", 1 }, { "フシギソウ", 2 }, { "フシギバナ", 3 }, }; // 最大値を</string,>…

【C#】Dictionary から指定したキーの要素を取得してから削除する拡張メソッド

ソースコード using System.Collections.Generic; public static class DictionaryExt { public static bool Remove<TKey, TValue> ( this Dictionary<TKey, TValue> self, TKey key, out TValue value ) { self.TryGetValue( key, out value ); return self.Remove( key ); } } 使用方法</tkey,></tkey,>…

【C#】Dictionary を結合する方法

目次 目次 foreach で結合する LINQ で結合する(キーが重複する場合は例外) LINQ で結合する(キーが重複しても大丈夫) 参考サイト様 foreach で結合する using System; using System.Collections.Generic; public static class Program { private static…

【C#】読み取り専用の Dictionary を使用する方法

ソースコード using System.Collections.Generic; using System.Collections.ObjectModel; public static class Program { private static void Main() { // 通常の Dictionary var table1 = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { </int,>…

【C#】Dictionary のキーに複数の値を設定する方法

構造体を使用する方法 using System; using System.Collections.Generic; public static class Program { // 構造体でキー用のデータを定義 public struct KeyData { public int m_series; public int m_number; public KeyData( int series, int number ) {…

【C#】Dictionary で値が重複している要素を取得する方法

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 100, "フシギダネ" }, { 101, "フシギダネ" }, { 102, "フシギダネ" }, { </int,>…

【C#】Dictionary を逆順に参照する方法

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { 3, "フシギバナ" }, }; // 逆</int,>…

【C#】IEnumerable からランダムに値を取得する拡張メソッド

ソースコード System.Random 版 using System; using System.Collections.Generic; using System.Linq; public static partial class IEnumerableExt { private static readonly Random m_random = new Random(); public static T RandomAt<T>( this IEnumerable<T></t></t>…

【C#】Dictionary で値からキーを取得する方法

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { 3, "フシギバナ" }, }; // Fi</int,>…

【C#】登録順を取得できる Dictionary

ソースコード using System; using System.Collections; using System.Collections.Specialized; public static class Program { private static void Main() { // OrderedDictionary を使用すると登録順を取得できます var table = new OrderedDictionary {…

【C#】Dictionary をソートする方法

方法1 - SortedDictionary を使用する using System; using System.Collections.Generic; public static class Program { private static void Main() { var table = new SortedDictionary<int, string> { { 3, "フシギバナ" }, { 2, "フシギソウ" }, { 1, "フシギダネ" }</int,>…

【C#】Dictionary の最初の要素を取得する方法

方法 FirstOrDefault 関数を使用 using System; using System.Collections.Generic; using System.Linq; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { 3, "フシ</int,>…

【C#】Dictionary のキーで文字列の大文字と小文字を区別しない方法

ソースコード using System; using System.Collections.Generic; public static class Program { private static void Main() { // デフォルトでは大文字と小文字は区別される var table1 = new Dictionary<string, int>(); table1.Add( "sample", 1 ); table1.Add( "Samp</string,>…

【C#】Dictionary を foreach で参照する方法

ソースコード using System; using System.Collections.Generic; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { 3, "フシギバナ" }, }; // キーと値を同時に参照</int,>…

【C#】Dictionary から要素を削除する方法

ソースコード using System.Collections.Generic; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { 3, "フシギバナ" }, }; // 指定されたキーの要素を削除する tabl</int,>…

【C#】Dictionary を初期化する方法

メンバ変数の場合 using System.Collections.Generic; public class Program { // コレクション初期化子を使用する方法 その1 public Dictionary<int, string> m_table1 = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { 3, "フシギバナ" }, }; // コレク</int,></int,>…

【C#】Dictionary のキーや値を配列やリストに変換する方法

ソースコード using System.Collections.Generic; using System.Linq; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { 3, "フシギバナ" }, }; // キーの配列に変換</int,>…

【おすすめスライド】「CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する」

スライド

【Unity】.NET 4.x Equivalent なら Dictionary のキーに列挙型を使用しても GC Alloc は発生しない

概要 using System.Collections.Generic; using UnityEngine; using UnityEngine.Profiling; public enum JobType { SOLDIER, } public class Example : MonoBehaviour { private void Update() { var table = new Dictionary<JobType, string> { { JobType.SOLDIER, "王国兵</jobtype,>…

【Git】プロジェクトに適した .gitignore を自動で生成できる「gitignore.io」紹介

概要 上記の「gitignore.io」では、プロジェクトに適した .gitignore を自動で生成できます 例えば、入力欄に「Unity」と「VisualStudio」と入力して「Create」を押すと Unity と Visual Sdtuio で無視する必要があるファイルが記載された .ignoreが生成され…

【Chrome】GitHub ページの左側にリポジトリの階層構造を表示できる「Octotree」紹介

はじめに 「Octotree」を Chrome に追加することで GitHub ページの左側にリポジトリの階層構造を表示できます 使用例 画面左の「Octotree」ボタンを押すと表示できます ピンアイコンをクリックして固定することもできます

【Chrome】GitHub や GitLab のアイコン表示を拡張できる「File Icon for GitHub and GitLab」紹介

はじめに 「File Icon for GitHub and GitLab」を Chrome に追加することで GitHub や GitLab のアイコン表示を拡張できます 使用例 適用前 適用後 ファイル名や拡張子に合わせてアイコン表示が拡張されます

【Chrome】GitHub のタブのサイズを 1 から 8 の範囲で調整できる「GitHub Custom Tab Size」紹介

はじめに 「GitHub Custom Tab Size」を Chrome に追加することで GitHub のタブのサイズを 1 から 8 の範囲で調整できるようになります 使用例 スライダーで調整できます