Bu kılavuzda, oyununuzu en yeni Input SDK'sını kullanacak şekilde nasıl taşıyacağınız açıklanmaktadır. 1.0.0-beta SDK, önceki 0.0.4 önizlemesine kıyasla önemli ölçüde iyileştirilmiştir. Mümkün olan en kısa sürede önceki önizlemelerden geçiş yapmanız gerekir. 0.0.4 SDK'sı Mart 2023'e kadar çalışmaya devam edecek.
Bağımlılığı güncelleme
Kitaplık artık Maven'de kullanılabildiğinden 0.0.4 kitaplığını libs dizininizden silin. Ardından, modül düzeyindeki build.grade dosyanızda şu satırı bulun:
implementation files('libs/inputmapping-0.0.4.aar')
Aşağıdaki kodla değiştirin:
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
Yeni InputMappingProvider arayüzünü uygulama
Eski soyut sınıf InputMappingProvider, 1.0.0-beta sürümünde arayüze dönüştürüldü. onProvideInputMap() yöntemi arayüzün bir parçası olmaya devam ediyor.
Kotlin
() içinde çağrılacak bir oluşturucu olmadığından () öğesini sınıf tanımından kaldırın.InputMappingProvider
InputMappingProvider uygulamanızı bulun:
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Aşağıdaki şekilde güncelleyin:
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
Java
Bir sınıfı genişletmek yerine bir arayüz uyguladığınızı belirtmek için extends yerine implements kullanın.
Uzatma yaptığınız yeri bulun InputMappingProvider:
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Ve InputMappingProvider'yı uygulamak için değiştirin:
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
Yeni InputClient'ı kullanma
registerInputMappingProvider ve unregisterInputMappingProvider, setInputMappingProvider ve clearInputMappingProvider ile değiştirildi.
Ayrıca, clearInputMappingProvider artık bir bağımsız değişken almadığından, daha sonra kaydını silmek için sağlayıcınıza referans vermeniz gerekmez.
Kotlin
Giriş haritası sağlayıcınızı kaydetmek içinregisterInputMappingProvider numaralı çağrınızı bulun:
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)
}
Ve setInputMappingProvider ile değiştirin:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
Giriş haritanızı temizlemek için unregisterInputMappingProvider ile görüşmenizi bulun:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
Ve clearInputMappingprovider ile değiştirin:
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
Java
Giriş haritası sağlayıcınızı kaydetmek için registerInputMappingProvider numaralı çağrınızı bulun:
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);
}
Ve setInputMappingProvider ile değiştirin:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
Giriş eşleme sağlayıcınızı temizlemek için unregisterInputMappingProvider çağrınızı bulun:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
Ve clearInputMappingProvider ile değiştirin:
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}