In diesem Leitfaden wird beschrieben, wie Sie Ihr Spiel auf das neueste Input SDK umstellen. Das 1.0.0-Beta-SDK bietet erhebliche Verbesserungen gegenüber der vorherigen 0.0.4-Vorabversion. Sie sollten so schnell wie möglich aus den früheren Vorschauen migrieren. Das SDK 0.0.4 funktioniert noch bis März 2023.
Abhängigkeit aktualisieren
Löschen Sie die Bibliothek 0.0.4 aus Ihrem libs
-Verzeichnis, da sie jetzt bei 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 Benutzeroberfläche.
Kotlin
Entfernen Sie ()
aus der Klassendefinition, da in InputMappingProvider
kein Konstruktor aufgerufen wird.
InputMappingProvider
-Implementierung suchen:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
und aktualisieren Sie sie auf Folgendes:
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 die Stelle, an der Sie InputMappingProvider
erweitern möchten:
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. Sie müssen also keinen Verweis auf Ihren Anbieter mehr speichern, um ihn später abzumelden.
Kotlin
Wenn Sie Ihren Kartenanbieter für Eingaben registrieren möchten, suchen Sie den Aufruf vonregisterInputMappingProvider
:
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
Wenn Sie Ihren Kartenanbieter für Eingaben registrieren möchten, suchen Sie 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());
}
Wenn Sie den Anbieter der Eingabezuordnung löschen möchten, suchen Sie den Aufruf von 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();
}