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