このガイドでは、最新の Input SDK を使用するように Unity ゲームを移行する方法について説明します。1.0.0 ベータ版 SDK は、以前の 0.0.4 プレビューから大幅に改善されています。可能な限り早期に以前のプレビューから移行してください。0.0.4 SDK は 2023 年 3 月まで引き続き機能します。
参照を更新する
Unity との名前の競合を回避するために、クラスに Play 接頭辞を付加しました。次のようなエラー メッセージが表示される場合:
エラー CS0246: タイプまたは名前空間名「InputMappingProvider」が見つかりませんでした(ディレクティブを使用していない、またはアセンブリ リファレンスが存在しない可能性があります)。
クラス名には Play 接頭辞を追加する必要があります。たとえば、InputMappingProvider は PlayInputMappingProvider になります。
各 InputAction を更新する
InputAction は、名前付きフィールドで新しい struct を作成するのではなく、PlayInputAction.Create の呼び出しで構築されるようになりました。
new InputAction を呼び出すコードを見つけます。
var driveAction = new InputAction
{
    ActionLabel = "Drive",
    UniqueId = (int)InputEventIds.DRIVE,
    InputControls = new InputControls
    {
        AndroidKeycodes = new[] { AndroidKeyCode.KEYCODE_SPACE }
    }
};
これを PlayInputAction.Create の呼び出しに置き換えます。
var driveAction = PlayInputAction.Create(
    "Drive",
    (int)InputEventIds.DRIVE,
    PlayInputControls.Create(
        new[] { AndroidKeyCode.KEYCODE_SPACE },
        null
    )
);
各 InputGroup を更新する
InputAction と同様に、InputGroup には PlayInputGroup.Create の呼び出しが含まれるようになりました。struct を手動で入力する必要はありません。
つまり、new InputGroup への呼び出しを見つける必要があります。
var gameInputGroup = new InputGroup
{
    GroupLabel = "Game controls",
    InputActions = new List<InputAction>
    {
        driveAction,
        turboAction,
        openGarageAction,
        openStoreAction
    }
};
これを PlayInputGroup.Create の呼び出しに置き換えます。
var gameInputGroup = PlayInputGroup.Create(
    "Game controls",
    new List<PlayInputAction>
    {
        driveAction,
        turboAction,
        openGarageAction,
        openStoreAction
    }
);
InputMap を更新する
InputMap は、新しい構造体を作成する代わりに PlayInputMap.Create も使用します。
new InputMap の呼び出しを見つけます。
return new InputMap
{
    InputGroups = new List<InputGroup>
    {
        gameInputGroup,
        menuInputGroup
    },
    MouseSettings = new MouseSettings
    {
        AllowMouseSensitivityAdjustment = false,
        InvertMouseMovement = false
    }
};
これを PlayInputMap.Create の呼び出しに置き換えます。
return PlayInputMap.Create(
    new List<PlayInputGroup>
    {
        gameInputGroup,
        menuInputGroup
    },
    PlayMouseSettings.Create(false, false)
);
PlayInputMappingClient メソッドの名前を変更する
PlayInputMappingClient について、RegisterInputMappingProvider の名前を SetInputMappingProvider に変更しました。
そのため、RegisterInputMappingProvider の呼び出しを見つけます。
Input.GetInputMappingClient().RegisterInputMappingProvider(_inputMappingProvider);
これを SetInputMappingProvider の呼び出しに置き換えます。
PlayInputMappingClient inputMappingClient =
    Google.Play.InputMapping.PlayInput.GetInputMappingClient();
inputMappingClient.SetInputMappingProvider(_inputMapProvider);
UnregisterInputMappingProvider の名前も ClearInputMappingProvider に変更され、以前に登録した InputMappingProvider はパラメータとして不要になりました。
UnregisterInputMappingProvider の呼び出しを見つけます。
Input.GetInputMappingClient().UnregisterInputMappingProvider(_inputMapProvider);
これを ClearInputMappingProvider に置き換えます。
PlayInput.GetInputMappingClient().ClearInputMappingProvider();
