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

এই নির্দেশিকায় বর্ণনা করা হয়েছে কীভাবে আপনার ইউনিটি গেমকে সর্বশেষ ইনপুট এসডিকে (Input SDK) ব্যবহারের জন্য মাইগ্রেট করবেন। ১.০.০-বিটা এসডিকে-তে পূর্ববর্তী ০.০.৪ প্রিভিউয়ের তুলনায় উল্লেখযোগ্য উন্নতি করা হয়েছে। আপনার যত দ্রুত সম্ভব পূর্ববর্তী প্রিভিউগুলো থেকে মাইগ্রেট করা উচিত। ০.০.৪ এসডিকে ২০২৩ সালের মার্চ মাস পর্যন্ত কার্যকর থাকবে।

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

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

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

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

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

নামযুক্ত ফিল্ডসহ একটি নতুন struct তৈরি করার পরিবর্তে, এখন PlayInputAction.Create কল করার মাধ্যমে InputAction তৈরি করা হয়।

এমন যেকোনো কোড খুঁজুন যা 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 এখন ম্যানুয়ালি কোনো struct পূরণ করার পরিবর্তে একটি PlayInputGroup.Create কল রয়েছে।

এর মানে হলো, আপনাকে 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 ও একটি নতুন struct তৈরি করার পরিবর্তে 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();