C#
こちらは クラスター Advent Calendar 2022(2ページ目)の17日目の記事です! 前日はスワンマンさん (@Swanman) の「Unityのエディタ拡張で動的にメニューを追加・削除する」でした! まさかエンジニアではなくカスタマーサポートの方からReflectionを使っ…
概要 動作環境 用語 使用するプロジェクト Composite Actions の実装 Composite Actions を組み込むワークフロー Composite Actions 対応 Composite Actionのファイル構成 Composite Actionの組込方針 .Netのビルドの一連の流れを集約 (複数のステップを1つ…
概要 前回の記事 動作環境 備考 GCPのサービスアカウント対応手順 サービスアカウントの作成 サービスアカウントの認証用JSON形式の鍵をダウンロード 対象のSheetsにサービスアカウントのアクセス権限を付与 GCPのサービスアカウント向けSheetsServiceProvid…
概要 環境 補足 StringTableCollection GoogleSheetsService Tips スクリプトで StringTableCollection をPullする方法 複数のStringTableCollectionを一括でPullする方法 StringTableCollectionを一括で取得するEditorコード 余談、公式サンプルコードにつ…
メソッドチェーンのモック化 何が起こっているの? Setupで指定しない場合はdefault 検証コード 雑感 メソッドチェーンのモック化 IFoo -> IBar -> IBaz のようにinterfaceのプロパティが連結されている場合、 以下の2つのモック化は同等になります。 // set…
概要 環境 IReadOnlyList の アロケーション発生ポイント foreach使用時などのIEnumerable.GetEnumerator アロケーションの原因 アロケーションの回避方法 IEquatable<T>を実装しない値型(struct)でEquals アロケーションの原因 アロケーションの回避方法 IRead</t>…
概要 IReadOnlyList について 注意事項 追記 2022/02/25 2022/02/26 IReadOnlyListは読込専用のList C#標準の一次元配列はIReadOnlyListにキャスト可能 IReadOnlyCollectionとの違いは index指定で要素にアクセスが可能なこと IReadOnlyListのTに値型を宣言…
概要 Compsote Installer について Compositeパターン Compsote Installer の活用術 1. 再利用可能なInstallerグループを作成可能 2. 疎結合Installer, 抽象Installerとして活用 3. 特定の機能提供向けInstallerとして配布 Compsote Installer の使い方 Comp…
経緯 検証環境 前知識 物理オブジェクトの物理エンジンへのFlush Physics.SyncTransforms Physics.autoSyncTransforms Flushの発生条件 Flushの発生タイミング 登場人物 PlayerColliders AnimationColliders PhysicsAnimationColliders DisabledAnimationCol…
概要 Moqの導入 Github Moqの依存ライブラリとそのライセンスについて MoqをUnityに導入する方法 Moqおよび依存ライブラリのダウンロード nupkgを展開 dllファイルの取り出し .NET Standard 2.0 .NET 4.x or .NET Framework dllのプラットフォームの指定 Sys…
概要 動作環境 関連 前知識 ContractType と ResultType について Zenjectによるインスタンス生成 コンストラクタが複数ある場合 WithArguments の引数の数について Scope (AsTransient, AsCached, AsSingle) Scopeの違い AsTransient AsTransient の 利用例…
概要 Constraints on type parameters について 例:structで制約を付けた場合 interfaceを継承した構造体のboxing intefaceを引数としたメソッドに渡した場合のBoxing なぜBoxingが発生したのか Generic Interfaceによる構造体のBoxingの回避 Generic Inter…
概要 UniRxについて DelayFrameの問題について 現象の確認方法 問題の原因 簡単に言うと 詳細に言うと バグではないの? 制限事項とする理由 余談:修正できないの? 問題の回避 方法1. MainThreadDispatcher.Initialize()をコール 方法2. Scheduler.SetDefa…
概要 動作環境 Raycastについて 検証の集計に関して 検証 検証方法 使用するCollider 検証1. ボックス状にコライダーを複数配置し、Raycastの時間を検証 2 x 2 x 2 合計1000の結果 10 x 10 x 10 合計1000の結果 40 x 40 x 40 合計8000の結果 検証1での考察 G…
概要 DIの本質 DIに関連の深いキーワード Dependency Injection の例 DIを使用しないパターン DIを使用するパターン Loggerを実装して注入 Console.WriteLineを実施するLogger ファイルにメッセージを追記していくLogger メッセージを無視するLogger 依存注…