Migrieren Sie zum 1.0.0-beta Input SDK

In diesem Leitfaden wird beschrieben, wie du dein Spiel migrierst, um die neueste Eingabe-SDK. Das SDK 1.0.0-Beta weist wesentliche Verbesserungen gegenüber der vorherige 0.0.4-Vorschau. Sie sollten aus früheren Vorschauen migrieren, sobald möglich. Das SDK 0.0.4 funktioniert noch bis März 2023.

Abhängigkeit aktualisieren

Löschen Sie die 0.0.4-Bibliothek aus Ihrem libs-Verzeichnis, da die Bibliothek jetzt verfügbar auf Maven. Suchen Sie dann diese Zeile in der build.grade auf Modulebene Datei:

implementation files('libs/inputmapping-0.0.4.aar')

Ersetzen Sie ihn durch den folgenden Code:

implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'

Neue InputMappingProvider-Schnittstelle implementieren

Die abstrakte Klasse InputMappingProvider wurde in Version 1.0.0-beta. Die Methode onProvideInputMap() ist weiterhin Teil des .

Kotlin

() aus der Klassendefinition entfernen, da es in der Klasse keinen Konstruktor gibt, der aufgerufen werden soll InputMappingProvider.

Suchen Sie Ihre InputMappingProvider-Implementierung:

class MyInputMapProvider : InputMappingProvider() {
    override fun onProvideInputMap(): InputMap {
        TODO("Not yet implemented")
    }
}

Ändern Sie die URL wie folgt:

class MyInputMapProvider : InputMappingProvider {
    override fun onProvideInputMap(): InputMap {
        TODO("Not yet implemented")
    }
}

Java

Ersetzen Sie extends durch implements, um anzugeben, dass Sie ein statt eine Klasse zu erweitern.

Suchen Sie nach der Stelle, an der Sie InputMappingProvider erweitern:

public class MyInputMapProvider extends InputMappingProvider {
    @NonNull
    @Override
    public InputMap onProvideInputMap() {
        // TODO: return an InputMap
    }
}

Ändern Sie es, um InputMappingProvider zu implementieren:

public class MyInputMapProvider implements InputMappingProvider {
    @NonNull
    @Override
    public InputMap onProvideInputMap() {
        // TODO: return an InputMap
    }
}

Neuen InputClient verwenden

registerInputMappingProvider und unregisterInputMappingProvider wurden durch setInputMappingProvider und clearInputMappingProvider ersetzt. Außerdem nimmt clearInputMappingProvider kein Argument mehr an, sodass Sie mehr benötigen, um die Registrierung später aufzuheben.

Kotlin

Um Ihren Eingabekartenanbieter zu registrieren, suchen Sie Ihren Aufruf an registerInputMappingProvider:

private val myInputMapProvider by lazy {
    MyInputMapProvider()
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.registerInputMappingProvider(myInputMapProvider)
}

Und ersetzen Sie es durch setInputMappingProvider:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}

Um die Eingabekarte zu löschen, suchen Sie Ihren Aufruf an unregisterInputMappingProvider:

override fun onDestroy() {
    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)

    super.onDestroy()
}

Und ersetzen Sie es durch clearInputMappingprovider:

override fun onDestroy() {
    val inputMappingClient = Input.getInputMappingClient(this)
    inputMappingClient.clearInputMappingProvider()

    super.onDestroy()
}

Java

Um Ihren Eingabekartenanbieter zu registrieren, suchen Sie Ihren Aufruf an registerInputMappingProvider:

private final MyInputMapProvider myInputMapProvider = new MyInputMapProvider();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.registerInputMappingProvider(myInputMapProvider);
}

Und ersetzen Sie es durch setInputMappingProvider:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}

Um Ihren Eingabezuordnungsanbieter zu löschen, suchen Sie Ihren Aufruf an unregisterInputMappingProvider:

@Override
protected void onDestroy() {
    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);

    super.onDestroy();
}

Und ersetzen Sie es durch clearInputMappingProvider:

@Override
protected void onDestroy() {
    InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
    inputMappingClient.clearInputMappingProvider();

    super.onDestroy();
}