সর্বশেষ ইনপুট SDK ব্যবহার করার জন্য আপনার ইউনিটি গেমটি কীভাবে স্থানান্তর করবেন তা এই নির্দেশিকা বর্ণনা করে। 1.0.0-বিটা SDK-এর আগের 0.0.4 পূর্বরূপের তুলনায় যথেষ্ট উন্নতি হয়েছে। যত তাড়াতাড়ি সম্ভব আপনার আগের পূর্বরূপগুলি থেকে স্থানান্তর করা উচিত৷ 0.0.4 SDK মার্চ 2023 পর্যন্ত কাজ করতে থাকবে।
রেফারেন্স আপডেট করুন
ইউনিটির সাথে নামকরণের সংঘর্ষ এড়াতে ক্লাস Play
প্রিফিক্স পেয়েছে। যখনই আপনি এর মতো একটি ত্রুটি বার্তা দেখতে পান:
ত্রুটি CS0246: টাইপ বা নেমস্পেস নাম 'ইনপুটম্যাপিংপ্রোভাইডার' খুঁজে পাওয়া যায়নি (আপনি কি ব্যবহার করার নির্দেশ বা সমাবেশের রেফারেন্স মিস করছেন?)
আপনাকে অবশ্যই ক্লাসের নামের সাথে 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
)
);
প্রতিটি ইনপুট গ্রুপ আপডেট করুন
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)
);
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();