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