ย้ายข้อมูลไปยัง SDK อินพุต 1.0.0 รุ่นเบต้า

คำแนะนำนี้จะอธิบายวิธีย้ายข้อมูลเกมของคุณเพื่อใช้ Input SDK เวอร์ชันล่าสุด SDK 1.0.0-เบต้ามีการปรับปรุงอย่างมากจากตัวอย่างเวอร์ชัน 0.0.4 ก่อนหน้านี้ คุณควรย้ายข้อมูลจากเวอร์ชันตัวอย่างก่อนหน้านี้โดยเร็วที่สุด SDK เวอร์ชัน 0.0.4 จะยังคงใช้งานได้จนถึงเดือนมีนาคม 2023

อัปเดตทรัพยากร Dependency

ลบไลบรารี 0.0.4 ออกจากไดเรกทอรี libs เนื่องจากตอนนี้ไลบรารีดังกล่าวพร้อมใช้งานใน 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")
    }
}

Java

แทนที่ 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()
}

Java

หากต้องการลงทะเบียนผู้ให้บริการแผนที่อินพุต ให้ค้นหาการเรียกใช้ 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();
}