Migrieren Sie zum 1.0.0-beta Input SDK

In dieser Anleitung wird beschrieben, wie Sie Ihr Spiel zur Verwendung des neuesten Input SDK migrieren. Die Betaversion des SDK 1.0.0 bietet gegenüber der vorherigen Version 0.0.4 erhebliche Verbesserungen. Sie sollten so schnell wie möglich von den vorherigen Vorschauen migrieren. 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 in Maven verfügbar ist. Suchen Sie dann in der Datei build.grade auf Modulebene nach dieser Zeile:

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 ehemalige abstrakte Klasse InputMappingProvider wurde in Version 1.0.0-beta in eine Schnittstelle umgewandelt. Die Methode onProvideInputMap() ist weiterhin Teil der Schnittstelle.

Kotlin

Entfernen Sie () aus der Klassendefinition, da es keinen Konstruktor gibt, der in InputMappingProvider aufgerufen werden kann.

Suchen Sie Ihre InputMappingProvider-Implementierung:

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

Ändern Sie den Wert wie folgt:

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

Java

Ersetzen Sie extends durch implements, um anzugeben, dass Sie eine Schnittstelle implementieren, anstatt 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 benötigt clearInputMappingProvider kein Argument mehr, sodass Sie keinen Verweis mehr auf Ihren Anbieter speichern müssen, um die Registrierung später aufzuheben.

Kotlin

Registrieren Sie Ihren Input Map-Anbieter über den Aufruf von 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)
}

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 Ihre Eingabezuordnung zu löschen, suchen Sie nach dem Aufruf von unregisterInputMappingProvider:

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

    super.onDestroy()
}

Ersetzen Sie es durch clearInputMappingprovider:

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

    super.onDestroy()
}

Java

Registrieren Sie Ihren Input Map-Anbieter über den Aufruf von 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);
}

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());
}

Suchen Sie nach dem Aufruf von unregisterInputMappingProvider, um den Anbieter für die Eingabezuordnung zu löschen:

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

    super.onDestroy();
}

Ersetzen Sie es durch clearInputMappingProvider:

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

    super.onDestroy();
}