이 가이드에서는 최신 입력 SDK를 사용하도록 게임을 이전하는 방법을 설명합니다. 1.0.0-beta SDK는 이전 0.0.4 미리보기에 비해 크게 개선되었습니다. 가능한 한 빨리 이전 미리보기에서 이전하시기 바랍니다. 0.0.4 SDK는 2023년 3월까지 계속 작동합니다.
종속 항목 업데이트
libs
디렉터리에서 0.0.4 라이브러리를 삭제하세요. 이제 Maven에서 이 라이브러리를 사용할 수 있습니다. 그런 다음 모듈 수준 build.grade
파일에서 다음 줄을 찾습니다.
implementation files('libs/inputmapping-0.0.4.aar')
다음 코드로 바꿉니다.
implementation 'com.google.android.libraries.play.games:inputmapping:1.0.0-beta'
새 InputMappingProvider 인터페이스 구현
이전 추상 클래스 InputMappingProvider
는 버전 1.0.0-beta
에서 인터페이스로 전환되었습니다. onProvideInputMap()
메서드는 여전히 인터페이스의 일부입니다.
Kotlin
InputMappingProvider
에서 호출할 생성자가 없으므로 클래스 정의에서 ()
를 삭제합니다.
InputMappingProvider
구현을 찾습니다.
class MyInputMapProvider : InputMappingProvider() {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
다음과 같이 업데이트합니다.
class MyInputMapProvider : InputMappingProvider {
override fun onProvideInputMap(): InputMap {
TODO("Not yet implemented")
}
}
자바
extends
를 implements
로 바꿔 클래스를 확장하는 것이 아닌 인터페이스를 구현한다는 것을 나타냅니다.
InputMappingProvider
를 확장하는 위치를 찾습니다.
public class MyInputMapProvider extends InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
InputMappingProvider
를 구현하도록 변경합니다.
public class MyInputMapProvider implements InputMappingProvider {
@NonNull
@Override
public InputMap onProvideInputMap() {
// TODO: return an InputMap
}
}
새 InputClient 사용
registerInputMappingProvider
및 unregisterInputMappingProvider
가 setInputMappingProvider
및 clearInputMappingProvider
로 대체되었습니다.
또한 clearInputMappingProvider
는 더 이상 인수를 사용하지 않으므로 나중에 등록을 취소하기 위해 제공자 참조를 더 이상 유지하지 않아도 됩니다.
Kotlin
입력 맵 제공자를 등록하려면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)
}
setInputMappingProvider
로 바꿉니다.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.setInputMappingProvider(MyInputMapProvider())
}
입력 맵을 지우려면 unregisterInputMappingProvider
호출을 찾습니다.
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider)
super.onDestroy()
}
clearInputMappingprovider
로 바꿉니다.
override fun onDestroy() {
val inputMappingClient = Input.getInputMappingClient(this)
inputMappingClient.clearInputMappingProvider()
super.onDestroy()
}
자바
입력 맵 제공자를 등록하려면 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);
}
setInputMappingProvider
로 바꿉니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new MyInputMapProvider());
}
입력 매핑 제공자를 삭제하려면 unregisterInputMappingProvider
호출을 찾습니다.
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.unregisterInputMappingProvider(myInputMapProvider);
super.onDestroy();
}
clearInputMappingProvider
로 바꿉니다.
@Override
protected void onDestroy() {
InputMappingClient inputMappingClient = Input.getInputMappingClient(this);
inputMappingClient.clearInputMappingProvider();
super.onDestroy();
}