1.0.0-बीटा इनपुट SDK टूल पर माइग्रेट करें

इस गाइड में बताया गया है कि अपने Unity गेम को नए वर्शन पर कैसे माइग्रेट करें इनपुट SDK टूल. 1.0.0-बीटा SDK टूल के अपडेट होने की वजह से, 0.0.4 की पिछली झलक में. आपको जल्द से जल्द पुरानी झलक से माइग्रेट करना चाहिए किया जा सकता है. 0.0.4 SDK टूल, मार्च 2023 तक काम करता रहेगा.

रेफ़रंस अपडेट करना

Unity के साथ होने वाली समस्याओं को नाम देने से बचने के लिए, क्लास को Play प्रीफ़िक्स मिला. जब भी आपको इससे मिलता-जुलता गड़बड़ी का मैसेज दिखे:

गड़बड़ी CS0246: टाइप या नेमस्पेस का नाम 'inputMappingProvider' नहीं हो सकता मिला (क्या आपने डायरेक्टिव या असेंबली रेफ़रंस का इस्तेमाल नहीं किया है?)

आपको क्लास के नाम में Play प्रीफ़िक्स जोड़ना होगा. उदाहरण के लिए, InputMappingProvider, PlayInputMappingProvider हो जाता है.

हर InputAction को अपडेट करें

InputAction को अब PlayInputAction.Create को कॉल करके बनाया गया है नाम वाले फ़ील्ड के साथ नया struct बनाने के लिए.

new InputAction को कॉल करने वाले किसी भी कोड का पता लगाएं:

var driveAction = new InputAction
{
    ActionLabel = "Drive",
    UniqueId = (int)InputEventIds.DRIVE,
    InputControls = new InputControls
    {
        AndroidKeycodes = new[] { AndroidKeyCode.KEYCODE_SPACE }
    }
};

और इसे PlayInputAction.Create को किए गए कॉल से बदलें:

var driveAction = PlayInputAction.Create(
    "Drive",
    (int)InputEventIds.DRIVE,
    PlayInputControls.Create(
        new[] { AndroidKeyCode.KEYCODE_SPACE },
        null
    )
);

हर InputGroup अपडेट करें

InputAction की तरह, InputGroup के पास अब PlayInputGroup.Create कॉल है मैन्युअल रूप से struct भरने की ज़रूरत नहीं है.

इसका मतलब है कि आपको new InputGroup पर किए गए सभी कॉल ढूंढने चाहिए:

var gameInputGroup = new InputGroup
{
    GroupLabel = "Game controls",
    InputActions = new List<InputAction>
    {
        driveAction,
        turboAction,
        openGarageAction,
        openStoreAction
    }
};

और इसे PlayInputGroup.Create को किए गए कॉल से बदलें:

var gameInputGroup = PlayInputGroup.Create(
    "Game controls",
    new List<PlayInputAction>
    {
        driveAction,
        turboAction,
        openGarageAction,
        openStoreAction
    }
);

इनपुट मैप अपडेट करें

InputMap, नई प्रॉपर्टी बनाने के बजाय PlayInputMap.Create का भी इस्तेमाल करता है ढांचा.

new InputMap को किए गए किसी भी कॉल का पता लगाएं:

return new InputMap
{
    InputGroups = new List<InputGroup>
    {
        gameInputGroup,
        menuInputGroup
    },
    MouseSettings = new MouseSettings
    {
        AllowMouseSensitivityAdjustment = false,
        InvertMouseMovement = false
    }
};

और इसे PlayInputMap.Create को किए गए कॉल से बदलें:

return PlayInputMap.Create(
    new List<PlayInputGroup>
    {
        gameInputGroup,
        menuInputGroup
    },
    PlayMouseSettings.Create(false, false)
);

PlayइनपुटMappingClient तरीकों का नाम बदलें

PlayInputMappingClient के लिए, RegisterInputMappingProvider का नाम बदलकर यह कर दिया गया है SetInputMappingProvider.

इसलिए, RegisterInputMappingProvider पर किए गए कॉल का पता लगाएं:

Input.GetInputMappingClient().RegisterInputMappingProvider(_inputMappingProvider);

और उन्हें SetInputMappingProvider पर एक कॉल से बदलें:

PlayInputMappingClient inputMappingClient =
    Google.Play.InputMapping.PlayInput.GetInputMappingClient();
inputMappingClient.SetInputMappingProvider(_inputMapProvider);

UnregisterInputMappingProvider का नाम बदलकर यह भी कर दिया गया है: ClearInputMappingProvider और अब आपको पहले से रजिस्टर करना ज़रूरी नहीं है InputMappingProvider पैरामीटर के तौर पर.

UnregisterInputMappingProvider को किए गए किसी भी कॉल का पता लगाएं:

Input.GetInputMappingClient().UnregisterInputMappingProvider(_inputMapProvider);

और उन्हें ClearInputMappingProvider से बदलें:

PlayInput.GetInputMappingClient().ClearInputMappingProvider();