ফোল্ডেবল, ট্যাবলেট এবং বড় স্ক্রিনসহ বিভিন্ন ধরনের ডিভাইসের জন্য অ্যান্ড্রয়েড গেম তৈরি করার সময়, খেলোয়াড়রা প্রায়শই এক্সটার্নাল কন্ট্রোলার বা গেমপ্যাড সংযোগ করে থাকেন। যেসব UI স্ক্রিন মূলত টাচ বা মাউস ব্যবহারের জন্য ডিজাইন করা হয়েছে, সেগুলোতে কন্ট্রোলার দিয়ে মেনু নেভিগেট করা বেশ কঠিন হতে পারে।
যদিও স্ট্যান্ডার্ড ডি-প্যাড নেভিগেশনের উপর ভিত্তি করে আপনার UI আর্কিটেকচার নতুন করে ডিজাইন করলে সাধারণত আরও ভালো ইউজার এক্সপেরিয়েন্স পাওয়া যায়, তবে বিদ্যমান প্রজেক্টগুলোর জন্য এটি সবসময় সম্ভব নাও হতে পারে। একটি বিকল্প হিসেবে, ইউনিটি ইনপুট সিস্টেম VirtualMouseInput কম্পোনেন্টটি প্রদান করে। এই কম্পোনেন্টটি আপনাকে একটি সংযুক্ত গেমপ্যাড বা কন্ট্রোলার ব্যবহার করে স্ক্রিনে একটি ভার্চুয়াল সফটওয়্যার কার্সার চালনা করতে দেয়।
ভার্চুয়ালমাউসইনপুট সম্পর্কে
VirtualMouseInput কম্পোনেন্টটি হলো Unity Input System প্যাকেজের একটি উচ্চ-স্তরের ইউটিলিটি, যা গেমপ্যাড ইনপুটকে অন-স্ক্রিন কার্সার নিয়ন্ত্রণ, UI পয়েন্টার ইন্টারঅ্যাকশন এবং সিমুলেটেড টাচস্ক্রিন ইভেন্টের সাথে সংযুক্ত করে। সক্রিয় থাকা অবস্থায়, এটি:
- একটি ভার্চুয়াল মাউস ডিভাইস তৈরি করে: এটি ইউনিটি ইনপুট সিস্টেমে যেকোনো ফিজিক্যাল পয়েন্টিং ডিভাইসের পাশাপাশি একটি সফটওয়্যার-সিমুলেটেড মাউস রেজিস্টার করে।
- গেমপ্যাড কন্ট্রোলকে কার্সরের কাজের সাথে যুক্ত করে: আপনি স্ক্রিনে কার্সার সরানোর জন্য অ্যানালগ স্টিক বা ডি-প্যাড বাইন্ড করতে পারেন, এবং বাম, ডান বা মাঝের মাউস ক্লিকের অনুকরণ করতে কন্ট্রোলার বাটন (যেমন বাটন সাউথ / A) ম্যাপ করতে পারেন।
- ইউনিটি UI-এর সাথে সমন্বিত হয়:
InputSystemUIInputModuleএর সাথে নির্বিঘ্নে কাজ করার মাধ্যমে, বাটন, টগল এবং স্লাইডারের মতো সাধারণ UI এলিমেন্টগুলো ভার্চুয়াল কার্সরের প্রতি ঠিক সেভাবেই সাড়া দেয়, যেভাবে সেগুলো একটি হার্ডওয়্যার মাউস বা টাচ ইন্টারঅ্যাকশনের ক্ষেত্রে দিত। - ভিজ্যুয়াল কার্সার পরিচালনা করে: এটি আপনাকে একটি UI
Graphic(যেমন একটিImageকম্পোনেন্ট) নির্ধারণ করতে দেয়, যা স্বয়ংক্রিয়ভাবে স্ক্রিনে ভার্চুয়াল কার্সারের অবস্থান ট্র্যাক করে এবং রেন্ডার করে।
ভার্চুয়াল মাউসকে টাচসিমুলেশনের সাথে একত্রিত করুন
যদি আপনার গেমটি মূলত শুধুমাত্র টাচস্ক্রিনের জন্য ডিজাইন করা হয়ে থাকে এবং সরাসরি টাচ স্ক্রিপ্ট বা এপিআই-এর উপর নির্ভর করে, তাহলে একটি ভার্চুয়াল মাউস স্বয়ংক্রিয়ভাবে আপনার বিদ্যমান টাচ ডিটেকশন লজিককে সক্রিয় করবে না, কারণ এটি একটি টাচস্ক্রিন ডিভাইসের পরিবর্তে একটি মাউস ডিভাইস হিসাবে নিবন্ধিত হয়।
আপনার পুরোনো টাচ হ্যান্ডলিং কোড পুনরায় না লিখে গেমপ্যাড-চালিত কার্সার ইন্টারঅ্যাকশন সমর্থন করার জন্য, আপনি VirtualMouseInput পাশাপাশি ইউনিটি ইনপুট সিস্টেমের TouchSimulation ফিচারটি ব্যবহার করতে পারেন।
- এটি যেভাবে কাজ করে:
TouchSimulation.Enable()ব্যবহার করে সক্রিয় করা হলে, ইনপুট সিস্টেম স্বয়ংক্রিয়ভাবে যেকোনো সক্রিয় মাউস ডিভাইস—VirtualMouseInputদ্বারা তৈরি সফটওয়্যার-সিমুলেটেড মাউস সহ—থেকে ক্লিক এবং পয়েন্টারের নড়াচড়াকে সিমুলেটেড টাচস্ক্রিন ইভেন্টে রূপান্তরিত করে। - ফলস্বরূপ ডেটা প্রবাহ: আপনার গেমপ্যাড স্টিক এবং বাটনের ইন্টারঅ্যাকশন ভার্চুয়াল মাউসকে চালনা করে, যাকে
TouchSimulationপরবর্তীতে একক-স্পর্শ ইভেন্টে (Touchscreen) রূপান্তরিত করে। আপনার বিদ্যমান টাচ ডিটেকশন স্ক্রিপ্টগুলো কোনো কোড পরিবর্তন ছাড়াই এই ইভেন্টগুলো নির্বিঘ্নে প্রসেস করতে পারে। - বিবেচ্য বিষয়:
TouchSimulationশুধুমাত্র সিঙ্গেল-টাচ পয়েন্টার এমুলেশনের মধ্যে সীমাবদ্ধ। যদি আপনার গেমপ্লে পিঞ্চ-টু-জুম বা দুই-আঙুলের রোটেশনের মতো জটিল মাল্টি-টাচ জেসচারের উপর নির্ভর করে, তবে আপনাকে আপনার গেমপ্যাড কন্ট্রোলের জন্য ডেডিকেটেড ইনপুট অ্যাকশন বাইন্ডিং কনফিগার করতে হবে।
সম্পূর্ণ প্রযুক্তিগত বিবরণ, প্রোপার্টি এবং ব্যবহার সংক্রান্ত ডকুমেন্টেশনের জন্য, অফিসিয়াল UnityEngine.InputSystem.UI.VirtualMouseInput এবং UnityEngine.InputSystem.EnhancedTouch.TouchSimulation স্ক্রিপ্ট রেফারেন্সগুলো দেখুন।