(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発しているゲームです!


LINQ

5,6,7,8のような連番のListや配列をEnumerable.Rangeを使って簡単かつスマートに作る方法【C#】【LINQ】

LINQとは はじめに C#で「5~8の連番のListが欲しい」みたいな時は素直にやると以下のような感じになるかと思います。 //5〜8の連番のListを作成 var list = new List<int>(); for (int i = 5; i <= 8; i++) { list.Add(i); } 特にこれでも問題はないのですが、今</int>…

任意の値に最も近い値を取得するLINQの拡張メソッド【Unity】【C#】【LINQ】【拡張メソッド】

拡張メソッドとは LINQとは はじめに LINQには同じ値を取得するというメソッドはありますが、 //検索対象のList var list = new List<int>() { -11, 0, 5, 8, 24, 100 }; //Listの中から0を取得(なければデフォルト値) var targetValue = list.FirstOrDefault(val</int>…

LINQの拡張メソッドの作り方と最大値(最小値)を持つ要素の取得【C#】【LINQ】【拡張メソッド】

拡張メソッドとは LINQとは はじめに LINQのMaxやMinを使うこと最大値や最小値を取得する事が可能ですが、 //てきとうなリスト var list = new List<int>() {1, 2, 5, 125, -52, 58, -4, 8, 100}; //最大値と最小値を取得しログ表示 Debug.Log($"Max : {list.Max(</int>…

タイムスタンプ(作成日、変更日、最後に開いた日)を基準にファイルを古い順や新しい順にソート【C#】【LINQ】

LINQとは はじめに 今回はファイルを作成した日、変更した日、最後に開いた日といういわゆるタイムスタンプを基準にC#でファイルを並び替える方法の紹介です。 なお、Unity上で動かしているので、ログの表示にDebug.Logを使っています。 タイムスタンプの取得

LINQの遅延実行&即時実行とforeach+遅延実行の問題【C#】【LINQ】

LINQとは はじめに 今回はLINQの遅延実行と即時実行についての話。LINQを使う上で知らなくてもわりとどうにかなる場合が多いですが、かなり大切な概念です。 ちなみに、「実戦で役立つ C#プログラミングのイディオム/定石&パターン」にも同様の項目があり、 …

オーディオのファイル名を定数で管理するクラスを自動作成する【Unity】【エディタ拡張】【LINQ】

エディタ拡張とは LINQとは AudioNameCreator 以下の記事の改良版です! 改良点は LINQを使ってDictionaryを作るように 定数クラスのファイルを書き出す処理をConstantsClassCreatorを使うように オーディオファイルが変更される度に自動で定数クラスを再生成…

シーン名、タグ名、レイヤー名、ソーティングレイヤー名の定数を自動作成&更新【Unity】【エディタ拡張】【LINQ】

各設定に更新がある度に自動で定数クラスも更新してくれるエディタ拡張を作りました。 シーン名を直書きしたり、自分で定数を宣言しなくても大丈夫! しかも自動で更新されるので、シーン名を書き換えたり、ビルド対象から外した時には エラーが出て教えてく…

任意のディレクトリにあるファイルが変更された時に処理を行う【Unity】【エディタ拡張】【LINQ】

AssetPostprocessorを継承し、OnPostprocessAllAssetsを実装すると、Assets内でファイルが追加、変更、削除、移動される度に実行されるようになります。 この時、その状態が変わったファイルが特定のディレクトリ以下であるかを知りたい場合があると思います…

LINQ小手調べ【Unity】【LINQ】

使ってみたいなーと思っていたLINQを使い始めたので、まずは小手調べに記事を一本! LINQだと数珠繋ぎで書かれるために読み進め易く、各メソッドの引数を見ずとも概要が掴めるため、理解し易いのではないかと思いました。