এই নির্দেশিকা থেকে জানতে পারবেন যে লেটেস্ট Input SDK ব্যবহার করার জন্য কীভাবে আপনার Unity গেম মাইগ্রেট করবেন। ১.০.০-বিটা SDK-তে আগের ০.০.৪ প্রিভিউয়ের তুলনায় উল্লেখযোগ্য উন্নতি করা হয়েছে। যত তাড়াতাড়ি সম্ভব আগের প্রিভিউ থেকে আপনার মাইগ্রেট করা উচিত। 0.0.4 SDK মার্চ ২০২৩ পর্যন্ত কাজ করা চালিয়ে যাবে।
রেফারেন্স আপডেট করুন
Unity-র সাথে নামের সংঘর্ষ এড়াতে ক্লাসগুলি Play প্রিফিক্স পেয়েছে।
আপনি যখনই এই ধরনের কোনও সমস্যার মেসেজ দেখতে পাবেন:
error CS0246: The type or namespace name 'InputMappingProvider' could not be found (are you missing a using directive or an assembly reference?)
আপনাকে অবশ্যই ক্লাস নামের আগে 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 আপডেট করুন
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)
);
PlayInputMappingClient পদ্ধতির নাম পরিবর্তন করা
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();