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

সর্বশেষ ইনপুট 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();