লেটেস্ট Input SDK ব্যবহার করার জন্য আপনার গেম কীভাবে মাইগ্রেট করবেন তা এই গাইডে বর্ণনা করা হয়েছে। 1.0.0-beta SDK-তে আগের 0.0.4 প্রিভিউয়ের তুলনায় উল্লেখযোগ্য উন্নতি করা হয়েছে। যত তাড়াতাড়ি সম্ভব আগের প্রিভিউ থেকে আপনার মাইগ্রেট করা উচিত। 0.0.4 SDK মার্চ ২০২৩ পর্যন্ত কাজ করা চালিয়ে যাবে।
ডিপেন্ডেন্সি আপডেট করুন
আপনার 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();
}