sdk
note
#
ベータ版の SDK とサンプルマッチ関数 SDK は、マッチ関数の外部サンプルに含まれる、C# アセンブリのセットです。
note
マッチ関数で現在サポートされている .NET ランタイムのバージョンは、3.0 と 3.1 です。
マッチ関数の外部サンプルには、次の DLL ファイルが含まれます。
コア SDK のアセンブリ
- Unity.Services.Matchmaking.Functions.Contracts.dll
- Unity.Services.Matchmaking.Matchmaker.Contracts.dll
ヘルパーアセンブリ(ConfigurableMatchFunction を参照)
- Unity.Services.Matchmaking.Functions.Base.dll
マッチ関数のオーサリングとテストを支援するテストシミュレーションライブラリ
- Unity.Services.Matchmaking.TicketGenerator.dll
#
関数のスレッドセーフcaution
リソースの活用を最大化するために、マッチ関数が複数のスレッドで同時に実行されることがあります。そのため、関数がスレッドセーフな方法で記述されていることが重要です。
スレッドセーフでない例を次に示します。
これがスレッドセーフでない理由は、別のスレッドが ExecuteAsync
を実行している場合、両方のスレッドが同じ申請のリスト(_proposals
)を観察することになるため、それに変更を加えると最終的にマッチメーカーにまったく同じリストが戻される結果になることがあります。一般的に、非同期のメソッドからスレッドセーフでない方法でメンバー変数にアクセスすることは避けてください。
各マッチ関数が完全に独立して実行されるように、このロジックをこのように記述することをお勧めします。
この例では、各関数が独自の申請のリストで初期化を実行し、その他の同時スレッドがデータを変更できないようにしています。
#
コントラクト#
マッチ申請#
ProposalProperties#
IMatchFunction と ConfigurableMatchFunctionIMatchFunction
は、マッチ関数の動作を定義するために実装する必要があるコアインターフェースです。ただし、次のヘルパークラスはオプションでその関数に運用設定を挿入およびロードすることができるため、ConfigurableMatchFunction<TConfig>
で開始することをお勧めします。
#
サンプル次のマッチ関数のサンプルが含まれています。Samples-download
には各サンプルの説明と共に readme
が含まれます。
- AvoidParties
- ClanAlliance
- ClanAllianceExtended
- Simple
- SimpleBackfill
- Team-Qos
- Timeout
#
Csproj に関するメモアップロードプロセス中に関数が正しくロードされるには、アップロードしている .zip ファイルにコア SDK ライブラリを含めないでください。この回避策の詳細については、マッチメーカーのリリースノートを参照してください。