C#
Unity2021.2以降Roslynの導入によって利用可能になったSource Generator。今回はSource Generatorの実装方法についてまとめます。
Unity上でSerializedObjectやSerializedPropertyに対する型付けされたアクセスを提供するSource Generator「UniTyped」がリリースされていたので触ってみました。
Unityプロジェクト内のアセットのファイルサイズを取得する方法です。
Roslyn APIを使用して、CSharpコードの構文ツリー解析を行う方法を解説します。 ※こちらの記事は2021.12月のC#アドベントカレンダー6日目の記事になります。
C#についてもくもくと学んでいる中で、意識すれば誰でもできるパフォーマンス改善に繋がる項目をいくつか紹介してみます。
structをusingステートメントで使用するとboxingされるのかを検証しました。
Roslyn AnalyzerがUnity2020.2から使えるっぽかったのでとりあえず触ってみました。
UnityでC#スクリプトのコンパイルにかかった時間を計測するエディタ拡張を実装したので記事にしました。
Unityのみならず、開発ではデバッグ環境と本番環境を区別して開発することが多いです。 その際にDebug環境でのみ含めたいコードなどがあり、Debug用と本番用を切り分けることができるビルド環境の構築方法をまとめました。
UnityのLayoutControllerの一つであるContentSizeFilterの挙動を、実際に実装しながら理解してみました。
UnityでUniTaskを使って非同期処理を実装している際に、別スレッドからUIを操作しようとしてしまいエラーが出てはまったときの対応メモです。
Unityで開発している時に、シーン名を定数文字列として持つクラスを作成することがあります。簡単な作業ですが、自動化できればありがたいなと思いEditor拡張を作りました。
頻出する問題解決の設計パターンであるデザインパターンをいくつか説明します。 デザインパターンを知っておくことは、共通言語にもなり得ますし、設計の引き出しも増えるでしょう。
コーディングを始める前の設計段階で作成するクラス図。 今回はVisual Studio Codeと拡張機能のPlantUMLを使ってクラス図を描く方法をまとめました。
Listって色々なところで使いますよね。 要素の中から該当するものを探す、取り出す、削除するなどなど。 自前で書かずとも、それ、既にAPIにあるかもです👍
Unityで頻繁に用いるコルーチン。 その返り値の型として使われるIEnumerator。こいつ一体何者なんだ? 正体を探る旅に出た。
最近Golangでサーバサイドを書く機会が増えてきていて、Golangの言語の特徴になるほど〜〜、いいねって感じることがあるのですが、 その中でもdeferが個人的にかなり便利!だったのでC#でもできないかと思いなんちゃってdeferを実装してみた件
UniRxを使っている時「ラムダ式はデリゲート型ではないのでIObserverに変換できません」というエラーに遭遇! チュートリアル通り使ってるのになんで!?と困ったことと、解決方法について。
for/foreach, string/StringBuilder, try-catch/エラー処理, 多次元配列など色々な点から高パフォーマンスの書き方を調査してみました。
C#のAPIであるHashSet 自作クラスで正しく動作させるにはどうしたらいいの?