Unity হল একটি ক্রস-প্ল্যাটফর্ম গেম ইঞ্জিন যা 2D এবং 3D অ্যাপ্লিকেশন তৈরির জন্য, মোবাইল প্ল্যাটফর্ম, ডেস্কটপ এবং কনসোলের জন্য বিল্ড সাপোর্ট সহ। এটি গেম ডেভেলপমেন্ট এবং আর্কিটেকচার, অটোমোটিভ এবং রিটেলে নন-গেমিং অ্যাপ্লিকেশন উভয়ের জন্যই ব্যবহৃত হয়। Unity Technologies, 2025 অনুসারে, App Store টপ 1000-এর 70% এরও বেশি মোবাইল গেম Unity-তে তৈরি। C# হল ইঞ্জিনের প্রধান প্রোগ্রামিং ভাষা যা গেম লজিক, কম্পোনেন্ট এবং এডিটর স্ক্রিপ্ট লেখার জন্য ব্যবহৃত হয়।
মূল বিষয়
Unity হল একটি গেম এবং রিয়েল-টাইম অ্যাপ্লিকেশন ডেভেলপমেন্ট এনভায়রনমেন্ট যা Unity Technologies 2005 সালে তৈরি করেছে। ইঞ্জিনটি 27টি প্ল্যাটফর্ম সমর্থন করে যার মধ্যে iOS, Android, Windows, macOS, PlayStation, Xbox, Nintendo Switch এবং WebGL অন্তর্ভুক্ত। Unity Gaming Report (2024) অনুসারে, 2023 সালে Unity-তে মাসিক 3 বিলিয়নেরও বেশি মোবাইল গেম লঞ্চ করা হয়েছিল।
Unity-র প্রধান বৈশিষ্ট্য হল এর কম্পোনেন্ট-ওরিয়েন্টেড আর্কিটেকচার। সিনের প্রতিটি অবজেক্ট একটি খালি কন্টেইনার (GameObject) যাতে তার আচরণ নির্ধারণকারী কম্পোনেন্ট যুক্ত করা হয়: রেন্ডারিং, ফিজিক্স, সাউন্ড, অ্যানিমেশন এবং কাস্টম লজিক। এটি Unity-কে Unreal Engine-এর মতো পিরামিডাল ইঞ্জিন থেকে আলাদা করে যেখানে আচরণ ক্লাস ইনহেরিটেন্স দ্বারা নির্ধারিত হয়।
Statista (2025) অনুসারে, Unity মোবাইল গেম ইঞ্জিন বাজারের 48% ধারণ করে, যা Unreal Engine (15%) এবং মালিকানাধীন সমাধান (37%) থেকে এগিয়ে। ইন্ডি স্টুডিও কম প্রবেশ বাধার জন্য এবং বড় প্রকাশক বিভিন্ন প্ল্যাটফর্মে বিল্ড পাইপলাইনের নমনীয়তার জন্য ইঞ্জিনটি বেছে নেয়।
Unity-র আর্কিটেকচার চারটি মৌলিক ধারণার উপর নির্মিত: সিন, GameObjects, কম্পোনেন্ট এবং প্রিফ্যাব। ইঞ্জিনের সাথে কার্যকরভাবে কাজ করার জন্য এই পিরামিড বোঝা প্রয়োজন।
সিন (Scene) হল একটি কন্টেইনার যা একটি গেম লেভেল বা অ্যাপ্লিকেশন অবস্থার সমস্ত অবজেক্ট ধারণ করে। প্রতিটি সিনের নিজস্ব GameObjects, আলোর উৎস, ক্যামেরা এবং অডিও উৎসের সেট থাকে। সিনের মধ্যে পরিবর্তন SceneManager.LoadScene()-এর মাধ্যমে করা হয়।
GameObject হল Unity-র মৌলিক বিল্ডিং ব্লক। এর কোনও ভিজ্যুয়াল উপস্থাপনা বা ডিফল্ট আচরণ নেই — এটি সিন পিরামিডের একটি খালি নোড। সমস্ত আচরণ এবং চেহারা কম্পোনেন্টের মাধ্যমে যুক্ত করা হয়। উদাহরণস্বরূপ, GameObject-কে দৃশ্যমান করতে MeshRenderer যুক্ত করা হয়; এটিকে ফিজিক্স মেনে চলতে Rigidbody যুক্ত করা হয়।
MonoBehaviour হল Unity-তে সমস্ত কাস্টম স্ক্রিপ্টের বেস ক্লাস। এটি একটি জীবনচক্র প্রদান করে: Awake (অবজেক্ট লোড হলে কল), Start (প্রথম ফ্রেমের আগে), Update (প্রতি ফ্রেম), FixedUpdate (প্রতি ফিজিক্স স্টেপ) এবং OnDestroy (ধ্বংস হলে)।
প্রতিটি কম্পোনেন্ট GetComponent<T>()-এর মাধ্যমে একই GameObject-এ অন্যান্য কম্পোনেন্টের সাথে ইন্টারঅ্যাক্ট করতে পারে। এটি মডিউলার সিস্টেম তৈরি করতে দেয়: উদাহরণস্বরূপ, Health কম্পোনেন্ট Movement কম্পোনেন্ট থেকে স্বাধীন হতে পারে, কিন্তু উভয়ই UnityEvent-এর মাধ্যমে ইভেন্টে প্রতিক্রিয়া জানাতে পারে।
প্রিফ্যাব (Prefab) হল একটি GameObject টেমপ্লেট যা প্রকল্পে একটি অ্যাসেট হিসেবে সংরক্ষিত। প্রিফ্যাবে পরিবর্তন স্বয়ংক্রিয়ভাবে সিনের সমস্ত ইনস্ট্যান্সে প্রয়োগ হয়। এটি Unity-তে পুনর্ব্যবহারের কেন্দ্রীয় প্রক্রিয়া যা পুনরাবৃত্তি ত্বরান্বিত করে এবং ত্রুটি হ্রাস করে।
প্রিফ্যাব নেস্টিং (Nested Prefabs) সমর্থন করে: একটি প্রিফ্যাবে অন্যান্য প্রিফ্যাব থাকতে পারে, একটি পিরামিড গঠন করে। উদাহরণস্বরূপ, একটি গাড়ির প্রিফ্যাবে চাকা, ইঞ্জিন এবং বডি প্রিফ্যাব থাকতে পারে, প্রতিটি নিজস্ব কম্পোনেন্ট এবং সেটিংস সহ।
আসুন C#-এ একটি বেসিক ক্যারেক্টার মুভমেন্ট কম্পোনেন্ট দেখি। এই স্ক্রিপ্টটি একটি অবজেক্টকে তার বর্তমান রোটেশনের সাপেক্ষে সামনে নিয়ে যায় এবং ব্যবহারকারী ইনপুট প্রক্রিয়া করে।
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f;
void Update()
{
float move = Input.GetAxis("Vertical");
Vector3 direction = transform.forward * move;
CharacterController controller = GetComponent<CharacterController>();
controller.SimpleMove(direction * speed);
}
}
Update() মেথডটি প্রতি ফ্রেমে কল করা হয়। Input.GetAxis উল্লম্ব ইনপুট পড়ে, SimpleMove ফিজিক্স সহ গতি প্রয়োগ করে। CharacterController হল একটি বিল্ট-ইন Unity কম্পোনেন্ট যা সংঘর্ষ ফিজিক্স না লিখেই সংঘর্ষ পরিচালনা করে।
সংঘর্ষ এবং ক্ষতি প্রয়োগের জন্য স্ক্রিপ্টের উদাহরণ:
using UnityEngine;
public class DamageHandler : MonoBehaviour
{
public int health = 100;
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Enemy"))
{
health -= 10;
if (health <= 0)
{
Destroy(gameObject);
}
}
}
}
OnCollisionEnter মেথডটি ফিজিক্স ইঞ্জিন দ্বারা কল করা হয় যখন একটি GameObject অন্য কোনো অবজেক্টের সাথে সংঘর্ষ করে। ট্যাগ তুলনা (CompareTag) নির্ধারণ করে যে সংঘর্ষ কার সাথে হয়েছে। এই পদ্ধতি কোড পরিবর্তন না করেই DamageHandler কম্পোনেন্টটি প্লেয়ার, শত্রু এবং ধ্বংসযোগ্য বস্তুর জন্য পুনর্ব্যবহার করতে দেয়।
Unity সীমিত সম্পদ সহ মোবাইল ডিভাইসের জন্য গেম অপ্টিমাইজ করার বিশেষ সরঞ্জাম সরবরাহ করে। মূল অপ্টিমাইজেশন ক্ষেত্রগুলির মধ্যে রয়েছে মেমরি ব্যবস্থাপনা, ড্র কল হ্রাস এবং বিভিন্ন স্ক্রিন রেজোলিউশনের সাথে অভিযোজন।
মোবাইল প্ল্যাটফর্মের জন্য, Unity Asset Bundles সরবরাহ করে — একটি কন্টেন্ট প্যাকেজিং সিস্টেম যা প্রয়োজন অনুযায়ী রিসোর্স লোড করে, অ্যাপ্লিকেশনের প্রাথমিক আকার হ্রাস করে। এটি বিশেষ করে অনেক লেভেল বা ক্যারেক্টারযুক্ত গেমের জন্য গুরুত্বপূর্ণ যেখানে অ্যাপ স্টোর সীমার কারণে একবারে সমস্ত অ্যাসেট লোড করা অসম্ভব।
Unity Profiler ADB (Android) বা USB (iOS)-এর মাধ্যমে বাস্তব ডিভাইসে CPU, GPU এবং মেমরি ব্যবহার বিশ্লেষণ করতে দেয়। Unity Documentation (2025) অনুসারে, মোবাইল ডিভাইসে ড্র কল 100–300-এ অপ্টিমাইজ করলে মিড-রেঞ্জ ডিভাইসে স্থিতিশীল 60 FPS পাওয়া যায়।
মোবাইল গেমের জন্য, Unity Input System ব্যবহার করে যা টাচ কন্ট্রোল, অ্যাক্সিলেরোমিটার এবং জাইরোস্কোপকে একটি ইউনিফাইড API-এর অধীনে বিমূর্ত করে। ভার্চুয়াল জয়স্টিক, সোয়াইপ এবং ট্যাপ টাচ হ্যান্ডলিং কোড না লিখেই Input Action Assets-এর মাধ্যমে কনফিগার করা হয়।
Unity-র UI সিস্টেম (uGUI) বিভিন্ন স্ক্রিন অ্যাসপেক্ট রেশিওর জন্য স্বয়ংক্রিয় ইন্টারফেস অভিযোজনের জন্য Canvas Scaler সমর্থন করে। Scale With Screen Size মোড সহ Canvas Scaler কম্পোনেন্ট নিশ্চিত করে যে ট্যাবলেট এবং স্মার্টফোনে বাটন স্ক্রিনের বাইরে না যায়।
Unity-তে মোবাইল গেমের বিল্ড Build Settings উইন্ডোর মাধ্যমে করা হয়। Android-এর জন্য Android SDK এবং NDK প্রয়োজন; Unity একটি Gradle প্রজেক্ট জেনারেট করে যা APK বা AAB-তে কম্পাইল হয়। iOS-এর জন্য Xcode প্রয়োজন — Unity একটি Xcode প্রজেক্ট তৈরি করে যাতে Objective-C/Swift র্যাপার থাকে যা চূড়ান্তভাবে Apple-এর মাধ্যমে কম্পাইল হয়।
IL2CPP হল একটি কম্পাইলেশন অপশন যা C# কোডকে C++ এবং তারপর নেটিভ ARM কোডে অনুবাদ করে। Unity Benchmark (2024) অনুসারে, IL2CPP Mono-র তুলনায় iOS এবং Android-এ পারফরম্যান্স 15–25% বৃদ্ধি করে, কিন্তু বিল্ড সময় এবং বাইনারি আকার বৃদ্ধি করে।
Unity-র তুলনা Unreal Engine এবং Godot-এর সাথে প্রধান বিকল্প হিসেবে করা হয়। পছন্দ প্রকল্পের ধরন, দলের দক্ষতা এবং লক্ষ্য প্ল্যাটফর্মের উপর নির্ভর করে।
| মানদণ্ড | Unity | Unreal Engine 5 | Godot 4 |
|---|---|---|---|
| ভাষা | C# | C++ / Blueprints | GDScript / C# |
| গ্রাফিক্স | Built-in / URP / HDRP | Nanite + Lumen | কাস্টম রেন্ডারার |
| মোবাইল অপ্টিমাইজেশন | চমৎকার (70% মোবাইল গেম) | ভাল (AAA পোর্টিং) | ভাল (হালকা ইঞ্জিন) |
| প্রবেশ বাধা | নিম্ন | উচ্চ | নিম্ন |
| লাইসেন্স | Personal / Pro / Enterprise | 5% রয়্যালটি ($1M পর্যন্ত) | MIT (বিনামূল্য) |
মোবাইল গেমের জন্য, Unity তার নমনীয় রেন্ডারিং সিস্টেমের (URP — Universal Render Pipeline) কারণে শিল্পের মানদণ্ড হিসেবে রয়ে গেছে, যা সীমিত কম্পিউট শক্তির মোবাইল GPU-র জন্য গ্রাফিক্স অপ্টিমাইজ করে। URP স্বয়ংক্রিয়ভাবে রেন্ডারিং পাসের সংখ্যা হ্রাস করে এবং GPU লোড কমানোর জন্য শেডার ব্যাচ করে।
Unreal Engine 5 সর্বোত্তম গ্রাফিক্স গুণমান (জ্যামিতির জন্য Nanite, আলোর জন্য Lumen) সরবরাহ করে কিন্তু আরও শক্তিশালী হার্ডওয়্যার এবং অধিক দলগত অভিজ্ঞতা প্রয়োজন। Godot ওপেন সোর্স কোড এবং ছোট ইঞ্জিন আকার দিয়ে আকর্ষণ করে কিন্তু কম রেডি-মেড অ্যাসেট এবং ছোট বিশেষজ্ঞ বাজার রয়েছে।
Unity গেম ডেভেলপমেন্টের বাইরে সক্রিয়ভাবে ব্যবহৃত হয় — আর্কিটেকচার, অটোমোটিভ, রিটেল এবং শিক্ষায়। রিয়েল-টাইম 3D ভিজুয়ালাইজেশন (RT3D) ইন্টারেক্টিভ 3D প্রেজেন্টেশন, সিমুলেটর এবং পণ্য কনফিগারেটর তৈরি করতে দেয়।
অটোমোটিভ শিল্পে, Unity গাড়ির ডিজিটাল টুইন এবং HMI (Human-Machine Interface) সিস্টেম তৈরি করতে ব্যবহৃত হয়। Mercedes-Benz এবং BMW ফিজিক্যাল প্রোটোটাইপ তৈরি হওয়ার আগে ড্যাশবোর্ড ডিসপ্লে এবং মাল্টিমিডিয়া সিস্টেমের প্রোটোটাইপিংয়ের জন্য Unity ব্যবহার করে।
রিটেলে, Unity পণ্য কনফিগারেটরের জন্য ব্যবহৃত হয়: IKEA (ভার্চুয়াল ফার্নিচার প্লেসমেন্ট), Nike (স্নিকার কাস্টমাইজেশন) এবং Audi (গাড়ি কনফিগারেটর) — এই সমস্ত প্রকল্প Unity-তে তৈরি। ব্যবহারকারী রিয়েল টাইমে রঙ, উপকরণ এবং বৈশিষ্ট্য পরিবর্তন করতে পারে এবং ফলাফল 3D-তে দেখতে পারে।
নন-গেমিং প্রকল্পের জন্য, Unity বিশেষ সরঞ্জাম সরবরাহ করে: AR Foundation (ARKit এবং ARCore-এর জন্য), Pixyz Plugin (CAD মডেল আমদানির জন্য) এবং Unity Reflect (Revit BIM মডেলের সাথে সিঙ্ক্রোনাইজেশনের জন্য)। কোম্পানি সক্রিয়ভাবে Unity Industry দিকটি বিকাশ করছে যার মধ্যে এন্টারপ্রাইজ ক্লায়েন্টদের জন্য ক্লাউড পরিষেবা অন্তর্ভুক্ত।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Unity ব্যাপক ডকুমেন্টেশন, বিনামূল্যের Unity Learn কোর্স এবং বিশাল কমিউনিটির কারণে নতুনদের জন্য সবচেয়ে সহজলভ্য গেম ইঞ্জিনগুলির মধ্যে একটি হিসেবে বিবেচিত হয়। শুরু করার জন্য C#-এর মৌলিক বিষয় এবং কম্পোনেন্ট আর্কিটেকচারের নীতিগুলি বোঝা যথেষ্ট। বেশিরভাগ নতুনরা 2–3 মাসের মধ্যে তাদের প্রথম গেম তৈরি করে।
হ্যাঁ, Unity-র একটি সম্পূর্ণ 2D পাইপলাইন রয়েছে: Sprite Renderer, 2D Physics (Box2D), টাইল থেকে লেভেল তৈরির জন্য Tilemap এবং স্প্রাইটের কঙ্কাল অ্যানিমেশনের জন্য 2D Animation। Hollow Knight এবং Cuphead সহ অনেক জনপ্রিয় 2D গেম Unity-তে তৈরি। প্লাগইন ইনস্টল করার প্রয়োজন ছাড়াই 2D টুলস ইঞ্জিনে নির্মিত।
Unity Personal বার্ষিক আয় $200,000 পর্যন্ত বিনামূল্য। Unity Pro-র মূল্য $2,040 প্রতি বছর প্রতি ডেভেলপার এবং এতে উন্নত প্রোফাইলিং টুল, ক্লাউড বিল্ড এবং অগ্রাধিকার সহায়তা অন্তর্ভুক্ত। মোবাইল ডেভেলপমেন্টের জন্য, Personal-এর কার্যকারিতা বেশিরভাগ ইন্ডি প্রকল্পের জন্য যথেষ্ট।
Cocos2d হল একটি 2D ফ্রেমওয়ার্ক যা C++, Lua এবং JavaScript সমর্থন করে, সরল 2D গেমের জন্য কেন্দ্রীভূত। Unity হল একটি সম্পূর্ণ 3D/2D ইঞ্জিন যাতে এডিটর, ভিজ্যুয়াল টুল এবং 27টি প্ল্যাটফর্মের সমর্থন রয়েছে। Cocos2d এশিয়ায় হাইপারক্যাজুয়াল গেমের জন্য জনপ্রিয়, যখন Unity যেকোনো ধারার জন্য একটি সার্বজনীন পছন্দ।
হ্যাঁ, Unity-তে AR Foundation (ARKit + ARCore), XR Interaction Toolkit এবং OpenXR-এর মাধ্যমে AR এবং VR-এর জন্য বিল্ট-ইন সমর্থন রয়েছে। Half-Life: Alyx (টেক ডেমো) এবং VRChat-এর মতো VR প্রকল্পগুলি Unity-তে তৈরি। ইঞ্জিনটি সমস্ত প্রধান VR হেডসেট সমর্থন করে: Meta Quest, HTC Vive, Valve Index এবং PlayStation VR।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন