1.0.0-বিটা ইনপুট SDK-এ স্থানান্তর করুন৷

এই নির্দেশিকাটিতে বর্ণনা করা হয়েছে কিভাবে আপনার ইউনিটি গেমটিকে সর্বশেষ ইনপুট SDK ব্যবহার করার জন্য স্থানান্তর করবেন। 1.0.0-বিটা SDK-তে পূর্ববর্তী 0.0.4 প্রিভিউয়ের তুলনায় যথেষ্ট উন্নতি হয়েছে। আপনার যত তাড়াতাড়ি সম্ভব পূর্ববর্তী প্রিভিউগুলি থেকে স্থানান্তরিত হওয়া উচিত। 0.0.4 SDK মার্চ 2023 পর্যন্ত কাজ করবে।

রেফারেন্স আপডেট করুন

ইউনিটির সাথে নামকরণের সংঘর্ষ এড়াতে ক্লাসগুলিকে Play প্রিফিক্স দেওয়া হয়েছে। যখনই আপনি দেখতে পাবেন যে এরর মেসেজটি এরকম:

ত্রুটি CS0246: 'InputMappingProvider' টাইপ বা নেমস্পেস নামটি খুঁজে পাওয়া যায়নি (আপনার কি কোনও ব্যবহারের নির্দেশিকা বা অ্যাসেম্বলি রেফারেন্স অনুপস্থিত?)

আপনাকে ক্লাসের নামের সাথে Play প্রিফিক্স যোগ করতে হবে। উদাহরণস্বরূপ, InputMappingProvider PlayInputMappingProvider হয়ে যায়।

প্রতিটি ইনপুটঅ্যাকশন আপডেট করুন

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();