Z tego przewodnika dowiesz się, jak przenieść grę, aby korzystała z najnowszych wersji Wejściowy pakiet SDK. Pakiet SDK w wersji 1.0.0 w wersji beta zawiera znaczące ulepszenia do poprzedniej wersji. Należy jak najszybciej rozpocząć jak to tylko możliwe. Pakiet SDK w wersji 0.0.4 będzie działać do marca 2023 r.
Zaktualizuj zależność
Usuń bibliotekę 0.0.4 z katalogu libs
, ponieważ jest już dostępna
dostępne w narzędziu Maven. Następnie znajdź ten wiersz na poziomie modułu build.grade
plik:
implementation files('libs/inputmapping-0.0.4.aar')
Zastąp go tym kodem:
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
Implementowanie nowego interfejsu RequestMappingProvider
Poprzednia klasa abstrakcyjna InputMappingProvider
została przekształcona w interfejs w
wersja 1.0.0-beta
. Metoda onProvideInputMap()
jest nadal częścią metody
za pomocą prostego interfejsu online.
Kotlin
Usuń element ()
z definicji klasy, ponieważ nie ma konstruktora do wywołania
InputMappingProvider
Znajdź swoją implementację InputMappingProvider
:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Zmień go na taki:
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Java
Zastąp extends
elementem implements
, aby wskazać, że implementacja tagu
interfejsu zamiast rozszerzania klasy.
Znajdź rozszerzenie InputMappingProvider
:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
I zmień ją, aby zaimplementować InputMappingProvider
:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Korzystanie z nowego interfejsu RequestClient
registerInputMappingProvider
i unregisterInputMappingProvider
zostały
zastąpiono przez setInputMappingProvider
i clearInputMappingProvider
.
clearInputMappingProvider
nie przyjmuje już argumentu, więc nie możesz
zachować odniesienie do dostawcy, aby go później wyrejestrować.
Kotlin
Aby zarejestrować dostawcę mapy wejściowej, zlokalizuj połączenie: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)
}
I zastąp go elementem setInputMappingProvider
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
Aby wyczyścić mapę wprowadzoną, znajdź połączenie z numerem unregisterInputMappingProvider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
I zastąp go elementem clearInputMappingprovider
:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
Aby zarejestrować dostawcę mapy wejściowej, zlokalizuj połączenie:
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);
}
I zastąp go elementem setInputMappingProvider
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
Aby usunąć dostawcę mapowania danych wejściowych, zlokalizuj połączenie:
unregisterInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
I zastąp go elementem clearInputMappingProvider
:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}