GameInput を使用して PC ゲームをビルドする場合は、Microsoft.GameInput NuGet パッケージをインストールして、開発用の Visual Studio を準備してください。 これにより、Visual Studio PC ビルド構成のみが更新され、Xbox/本体の GameInput ビルドの依存関係は変更されません。
GameInput は最新バージョンの Windows ではすぐにサポートされていますが、開発とリリースの両方で NuGet パッケージに含まれる GameInput 再頒布可能パッケージをインストールして、PC の最新の GameInput 機能と更新プログラムを利用することが重要です。
GameInput 再頒布可能
注意
GameInput 再頒布可能パッケージは NuGet パッケージに含まれていますが、自動的にはインストールされません。
GameInput は最新バージョンの Windows では既定でサポートされていますが、互換性を最大限に高めるために、PC ゲームは GameInput 再頒布可能パッケージをそれぞれのインストーラーに組み込む必要があります。 GameInput NuGet パッケージをインストールすると、GameInputRedist.msi
インストーラーが packages\Microsoft.GameInput.<version>\redist
ディレクトリに配置されます。これは通常、プロジェクトのルート ディレクトリにあります。
GDK PC タイトルを使用している場合は、リリース時にこのパッケージをタイトルに含める方法の詳細については、カスタム インストール アクションに関するドキュメントを参照してください。 GDK 以外の PC タイトルを使用している場合は、この再頒布可能パッケージが通常のゲーム インストールの一部としてインストールされていることを確認します。
GameInput 再頒布可能パッケージは、ターゲット システムで GameInput ダウングレードが発生しないことを確認します。 これは、開発に使用されたバージョンよりも新しいバージョンの GameInput がインストールされた PC でゲームが実行される可能性があることを意味しますが、GameInput API は下位互換性を維持し、今後の一貫した動作を保証します。
GameInput v.1 / PC の変更
PC で以前のバージョンの GameInput を使用している場合、または GDK を使用して Xbox で GameInput とコードを共有している場合は、実装されていない関数と対応する列挙型と定数の多くが v.1 API から削除されていることに注意してください。
さらに、API は、バージョン管理を容易にするために、GameInput::v1
名前空間に配置されています。 これらの変更により、この (および将来の) バージョンを使用してそのコードをビルドするときにコンパイル エラーが発生する可能性があります。 注目すべき変更点は次のとおりです:
以前、
IGameInputDevice::GetDeviceInfo
は、結果として得られる IGameInputDeviceInfo 構造体を関数の戻り値として返していました。 この構造体は関数の out パラメーターとして返され、関数の戻り値はHRESULT
になりました。以前、
IGameInput::UnregisterCallback
はタイムアウト値を 2 番目のパラメーターとして受け取りましたが、このパラメーターは削除されました。IGameInputReading::GetSequenceNumber
は削除されました。 代わりに、IGameInputReading::GetTimestamp
を使用してください。
このような場合は、本体上の XCloud に使用されるタッチ API と共に、GAMEINPUT_API_VERSION
定義を使用して、PC と本体の間で条件付きでコードをコンパイル (または除外) します。
例:
#include <GameInput.h>
#ifndef GAMEINPUT_API_VERSION
#define GAMEINPUT_API_VERSION 0
#endif
#if GAMEINPUT_API_VERSION == 1
using namespace GameInput::v1;
#endif
...
#if GAMEINPUT_API_VERSION >= 1
device->GetDeviceInfo(&deviceInfo);
#else
deviceInfo = device->GetDeviceInfo();
#endif
バージョン管理のヒント
- v.0 と v.1 の間の使用可能な API サーフェスの変更は最小限であり、実装されなかった機能の削除と、上記の関数シグネチャの変更が伴います。
- 元の
GameInput.h
ヘッダーからの元の v.0 API は PC では引き続きサポートされていますが、その API は静的なままです。 この場合、GDK、古い NuGet パッケージ、または Windows SDK からそのままヘッダーを使用します。 - 使用する API のバージョンに関係なく、開発中に NuGet パッケージから最新の再頒布可能パッケージをインストールし、その再頒布可能パッケージ (またはそれ以降) をゲームのインストール プロセスの一部としてエンド ユーザーに含める必要があります。 これは、新しい GameInput ランタイム実装が存在する場所であり、拡張されたコントローラーのサポート、トラックパッドのサポート、リモート デスクトップのサポート、その他のさまざまなバグ修正など、API のすべてのバージョンを強化します