یونیتیی یک موتور بازی سازی رایگان و یکی از بهترین ابزارها برای ساخت بازی دوبعدی و سه بعدی است. اگر قبلا با موتور بازی سازی یونیتی آشنایی نداشتهاید، این مقالهی آموزش کار با Unity آشنایی اولیه و نحوه کار کردن شما با IDE یا به زبان سادهتر محیط برنامه نویسی یونیتی را فراهم خواهد کرد. در پایان این مقاله چهارچوب و دید کلی خوبی از یونیتی به دست خواهید آورد.
با وجود اینکه در این مقاله، سعی شده همه چیز خیلی ساده و از صفر گفته شود اما نداشتن پیش زمینه برنامه نویسی ممکن است در برخی توضیحات کمی شما را سردرگم کند. البته خیلی هم نگران نباشید.
اگر مشتاق یادگیری بازی سازی بوده و در ابتدای این مسیر هستید، یونیتی (Unity) یکی از بهترین انتخابهای شما برای شروع کار با یک موتور بازی سازی است. کار با یونیتی نسبتا راحت است؛ بازی سازی را برای تازه واردها بسیار سادهتر میکند و در عین حال آنقدر قدرتمند است که بتوان با آن بازیهای بسیار موفقی در سبکهای مختلف و برای پلتفرمهای مختلف (مثل موبایل، واقعیت مجازی، پی سی و کنسول) طراحی کرد.
از جمله بازیهایی موفقی که با Unity ساخته شدهاند میتوان به Hollow Knight یا Firewitch برای پی سی و کنسول، Monument Valley یا Alto’s Adventure برای پلتفرمهای موبایل و بازی واقعیت افزوده جنجالی Pokémon GO اشاره کرد.
اگر میخواهید آموزش کار با Unity را از طریق ویدیو یاد بگیرید، می توانید با مراجعه به سایت فرادرس، تمامی ویدئوهای آموزشی Unity را مشاهده نمایید. در ادامه این مقاله نیز چند مورد از لینک های مرتبط با موضوع آموزش Unity قرار خواهد گرفت.
این مقاله آموزش یونیتی را با ساده ترین بخش ممکن شروع میکنیم. برای نصب موتور بازی سازی یونیتی، به این لینک مراجعه کنید. نسخه Personal تنها نسخه رایگان یونیتی و نسخههای دیگر برای تیمها و شرکتهایی که قصد استفاده تجاری از آن را دارند. البته بازی ساخته شده در نسخه Personal با یک splash screen شروع میشود که به ساخته شدن بازی با Unity اشاره میکند که نمیتوانید آن را حذف کنید.
بعد از نصب، باید برای خود یک اکانت بسازید. با هربار استفاده از یونیتی، دوباره وارد اکانتتان میشوید. البته یک حالت offline mode هم وجود دارد که میتوانید آن را فعال کنید. بعد از اینکه به اکانت خود وارد شد، میتوانید با انتحاب Create Project یک پروژه بسازید که صفحهای مشابه صفحه زیر را برای شما باز خواهد کرد. Template به نوعی قالب اولیه پروژه شما را تعیین میکند. Asset Package هم فایلهایی است که در پروژه از آنها استفاده میکنید که بعدا هم میتوانید را کم کم اضافه کنید.
رابط کاربری یونیتی در نگاه اول ممکن است برایتان کمی پیچیده به نظر برسد. اما واهمه نداشته باشید؛ در این قسمت تمام بخشهای آن را واکاوی و معرفی میکنیم. همچنین این رابطه کاربری کاملا قابل شخصی سازی است و میتوانید پنجرهها را به هر شکلی راحتترید، تغییر دهید. به طور مثال اگر در بخش سمت راست بالا، Layout را به حالت 2 به 3 تغییر دهید، پنجرهها به شکل زیر درمیآیند.
در ادامه مقاله آموزش کار با Unity تمام پنجرههایی که در شکل فوق شماره گذاری شدهاند را معرفی میکنیم.
1. Scene View
Scene view جایی است در آن ظاهر بازی خود را میسازید. مدلها را در کنار هم قرار داده و تغییرشان میدهید، دوربین را اضافه میکنید و در کل به صورت سه بعدی هرچیزی که ساختهاید را میبینید. وقتی که بازی را اجرا کنید، Scene هم با تغییرات بازی تغییر شکل میدهد و در پایان اجرا به حالت اولیه خود بازمیگردد. در حین اجرا، میتوانید تغییرات را هم اعمال کنید اما همه آنها در پایان از بین میروند. یکی از اشباهات رایج در بین تازه کارها این است تغییرات خود را هنگامی دکمه Play را زدهاند اعمال میکند و بعد از پایان تمام زحمتهایشان هدر میرود. پس حواستان به این قضیه باشد.
اگر میخواهید در مورد مدل سازی اطلاعات بیشتری به دست آورید روی لینک زیر کلیک کنید:
آموزش مدل سازی سه بعدی با 3ds MAX – کلیک کنید
2. Game View
Game View جایی است که شما در آن میتوانید بازی خود را بازی کرده و با اشیا تعامل کنید. یعنی Game View چیزی است که بازیکن از طریق دوربین تعیین شده میبیند و محدودتر است در حالی Scene view دیدی است که بازی ساز نسبت به بازی خود دارد. یعنی برخلاف Scene view، شما در Game View یک گیمر هستید و نمیتوانید چیزی را تغییر دهید مگر اینکه این امکان برای شما فراهم شده باشد.
3. Hierarchy Window
Hierarchy Window تمام GameObjectهای موجود در Scene را در قالب یک لیست لول بندی شده یا اصطلاحا به صورت درختی نشان میدهد. وقتی GameObjectهای بازی شما کم کم زیاد شدند، شما به جای Scene view از این بخش برای دسترسی به آنها استفاده خواهید. اما اصلا GameObject چیست؟ GameObject یک Container (چیزی شبیه یک مخزن خالی) است که هرچیزی که در بازی داشته باشید مثل یک مدل سه بعدی از یک سنگ، به درون یک GameObject وارد میشود. GameObject میتواند شامل چند Component، مدل، بافت، اسکریپت، دوربین، نور، صدا یا GameObjectهای دیگر باشد. GameObject حتی میتواند به شکل یک پوشه عمل کند و صرفا برای دسته بندی و مرتب سازی GameObjectهای دیگر عمل کند. منظور از نمایش درختی هم این است که اگر یک GameObject فرزند یا زیرشاخه GameObject دیگری باشد در یک لول جلوتر از GameObject پدر قرار میگیرد. وابستگی GameObjectای که عضو GameObject بزرگتر است یک مسئله اجتناب ناپذیر در دنیای بازی سازی و برنامه نویسی است.
نکته: اگر در درک مباحث مربوط به GameObject دچار سردرگمی شدهاید، مطالعه درباره مفاهیم برنامه نویسی شئ گرا (OOP) و ارث بری (Inheritance) میتواند کمک شایانی به شما کند. متاسفانه توضیح درباره این مباحث مقولهای جدا از آموزش یونیتی است.
هر Scene به طور پیشفرض دو GameObject دوربین و نور را دارد که البته بخواهید میتوانید آنها را پاک کنید. GameObjectهای جدید را هم میتوانید از همین بخش با زدن Create ایجاد کنید.
4. Project Window
Project Window تمام Assetهای موجود در لوکیشن بازی شما را به صورت مرتب شده نشان میدهد. Asset در واقع فایلهایی (مثل یک عکس یا صدا) است که میخواهید از آنها در پروژه استفاده کنید و همه آنها در لوکیشن پروژه قرار گرفتهاند. اگر در تفاوت بین Project Window و Hierarchy Window دچار مشکل شدهاید، باید بگوییم که فایلهای Project Window فایل خامی هستند که هنوز وارد یک GameObject نشدهاند و ممکن است فعلا اصلا در بازی از آنها استفاده نکرده باشید. درحالی در Hierarchy Window فایلهای Project Window که در قالب GameObject درآمدهاند را میتوانیم ببینیم. همچنین شما میتوانید مستقبما فایلهای Asset را با کشیدن و رها کردن وارد Scene کنید و خود یونیتی GameObject مخصوص به آن را ساخته و در Hierarchy Window قرار میدهد.
Project Window فایلهای Asset را همان طور مدیریت میکند که سیستم عامل این کار را انجام میدهد. برای همین شما برای مرتب سازی یا تغییر این فایلها ممکن است از طریق File Explorer سیستم عامل اقدام کنید؛ اما این یک اشتباه بزرگ است که میتواند پروژه را کاملا خراب کند. یونیتی در واقع یکسری فایلهای دیگر به اسم Metadata را برای هر فایل Asset ایجاد میکند که همراه با آن ذخیره میشود. تغییر لوکیشن هر فایل توسط File Explorer لوکیشن این Metadata ها را تغییر نمیدهد. بنابراین اگر میخواهید لوکیشن یک فایل Asset را تغییر دهید حتما از طریق Project Window اقدام کنید.
البته یک نکته را فراموش نکنید، برای این که بتوانید بازی بسازید باید اصول گیم دیزاین یا طراحی بازی را هم فرا بگیرید. در مطلب پایین ما ۴ اصل مهم طراحی بازی را به طور کامل شرح دادهایم:
چهار اصل طراحی بازی | چگونه یک گیم دیزاینر شویم – کلیک کنید
5. Inspector Window
Inspector window مشخصات و کامپوننتهای GameObject انتخاب شده را در پنجره خود نشان داده و اجازه تغییر دادن آنها را میدهد. برای انتخاب یک GameObject کافی است دوبار روی اسم آن در Hierarchy Window کلیک کنید. به طور مثال با انتخاب GameObject نور میتواند رنگ این نور، مختصات و اندازه آن را در Inspector window تغییر دهید. همچنین این تغییرت حین اجرای بازی نیز میتوانند اعمال شود.
6. Toolbar
Inspector window تنها جایی نیست که میتوانید مشخصات یک GameObject را تغییر دهید. برای تغییرات سادهتر مثل تغییر لوکیشن، اندازه یا زاویه میتوانید با انتخاب حالت موس از Toolbar موجود در سمت بالا و چپ، مستقیما از Scene View این تغییرات را اعمال کنید. برای امتحان آنها بهتر است ابتدا یک GameObject سه بعدی مثل یک مکعب را به وجود آورده و آن را انتخاب کنید. برای ساخت آن از گزینه Create در Hierarchy Window استفاده کنید. در ادامه این آموزش کار با Unity میتوانید جزئیات هریک از ابزارهای Toolbar را ببینید.
- اولین گزینه در Toolbar که به شکل یک دست است Hand tool نام دارد و برای مشاهده کردن GameObject از زوایای مختلف استفاده میشود. برای جابجایی دوربین باید کلیک چپ را نگه دارید و موس را حرکت دهید. همچنین با نگه داشتن کلیک راست میتوانید دوربین را به دور GameObject انتخاب شده بچرخانید. برای زوم با این دوربین Ctrl را هم نگه داشته و موس را بالا یا پایین ببرید. البته از اسکرول کردن هم برای زوم میتوانید استفاده کنید. همچنین از کلیدهای WASD برای چرخیدن دور GameObject هم میتوانید استفاده کنید. با Q و E هم میتوانید بالا و پایین بروید و اگر Shift را نگه دارید سرعت این کارها بیشتر میکنید.
- دومین گزینه Translate tool نام دارد که برای تغییر مختصات GameObject استفاده میشود. بعد از انتخاب Translate tool سه بردار در راستای محورهای X و Y و Z در کنار GameObject پدیدار میشوند که با انتخاب هریک از این سه بردار، میتوانید GameObject را در آن راستا جابجا کنید. صفحههای کوچک رنگیای هم در مرکز برخورد این سه بردار وجود دارند که با انتخاب آنها میتوانید GameObject را همزمان در راستای دو محور جابجا کنید.
- سومین گزینه Toolbar ابزار Roate Tool است که همانطور که از اسم آن حدس میزنید برای چرخاندن GameObject استفاده میشود. بعد از انتخاب این ابزار نیز سه دایره در اطراف GameObject ظاهر میشوند که با انتخاب هریک از آنها، میتوانید GameObject را در آن راستا بچرخانید.
- چهارمین ابزار Scale tool است که برای تغییر اندازه GameObject انتخاب شده استفاده میشود. این تغییر اندازه میتواند در راستای فقط یکی از محورهای X و Y و Z یا راستای همه آنها باشد. برای تغییر اندازه در راستای یکی از محورها، مکعب موجود در محور مورد نظر را انتخاب کرده و با نگه داشتن کلیک چپ، موس را به جلو یا عقب ببرید تا GameObject بزرگ یا کوچک شود. برای تغییر اندازه تمام ابعاد GameObject نیز میتوانید همین کار را با مکعب قرار گرفته شده در وسط انجام دهید.
- پنجمین گزینه Toolbar یک ابزار برای GameObjectهای دو بعدی است که Rect tool نام دارد. با این ابزار میتوانید کار تغییر اندازه و چرخش را با هم انجام دهید.
- آخرین ابزار Toolbar نیز Transform tool است که هر سه کار تغییر اندازه، چرخاندن و جابجا کردن را باهم انجام میدهد. کمی در این حالت محیط شلوغتر میشود ولی کار را سریعتر میکند.
همیشه بهترین راه برای فرا گرفتن یونیتی، یادگیری آن از طریق پروژه است. با کلیک روی لینک زیر در سایت فرادرس، به صورت پروژه محور یک بازی ماجرایی اندرویدی میسازید.
7. Play Buttons
دکمههای Play و Pause و Step در این بخش قرار دارند. همانطور که انتظار دارید، دکمه Play بازی شما را اجرا و Pause آن را متوقف میکند. Step نیز به شما کمک میکند انمیشنها را فریم به فریم مشاهده کنید.
در این مقاله آموزش کار با Unity سعی شد پیش نیازها و مقدمات بازی سازی با این موتور به شما معرفی شود تا درکی اولیه از آن داشته باشید. چه قدر این راهنما برای شما مفید بود؟ نظرات خود را با ما در میان بگذارید.