इस गाइड में बताया गया है कि अपने 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();