بهترین نرم افزار بازی سازی برای شروع، یونیتی است
یونیتی بهترین نرم افزار برای شروع بازی سازی است و مزیتهای زیادی نسبت به سایر موتورهای بازی ساز دارد. مزایای آموزش یونیتی را به شرح زیر ملاحظه میکنید؛
مزایای یونیتی و ویژگی های یونیتی برای بازی سازی چیست؟
۱. با یونیتی برای پلتفرم های مختلفی می توانید بازی بسازید
یونیتی با پشتیبانی از تقریبا ۳۰ سیستم عامل و پلتفرم مختلف، یک موتور بازی ساز Game Engine بسیار محبوب است؛ چون از موبایل، دسکتاپ، کنسول Console و تکنولوژی واقعیت مجازی Virtual Reality و واقعیت افزوده Augmented Reality و … پشتیبانی میکند و نسبت به هر فناوری بازی دیگری، بیشتر توسعه پیدا کرده است.
۲. کار با یونیتی ساده است
موتور بازی سازی یونیتی ویرایشگر تصویر Visual Editor بسیار قوی و سادهای دارد که کار را برای بازی سازان راحت کرده و هر روز به تعداد توسعه دهندگانِ آن اضافه میکند و این توسعه دهندگان در سرتاسر جهان در به روز رسانی یونیتی کمک میکنند.
۳. یونیتی مناسبترین گزینه برای ساخت صحنهها و شخصیتها است
یونیتی برای ساخت صحنهها و شخصیتهای بازی، از یک سیستم مدولار فوق العاده بهره میبرد. به نحوی که حتی اگر، تازه کار را شروع کرده باشید، باز هم میتوانید یک بازی سفینه فضایی بسیار جذاب ایجاد کنید. همان بازیای که در این مقاله پروژه محور، قرار است بسازید.
بازی های ساخته شده با یونیتی
بازی های زیادی با موتور بازی ساز یونیتی ساخته شدهاند که در این بخش از مقاله، به معرفی ۱۰ مورد از محبوبترینهای آنها میپردازیم:
- Temple Run Trilogy سال ۲۰۱۱
- (Assassin’s Creed: Identity (beta سال ۲۰۱۴
- Hitman Sniper سال ۲۰۱۴
- Alto’s Adventure سال ۲۰۱۵
- Mobius Final Fantasy سال ۲۰۱۵
- Reigns سال ۲۰۱۶
- Hollow Knight سال ۲۰۱۷
- Monument Valley 2 سال ۲۰۱۷
- Escape from Tarkov سال ۲۰۱۷
- Ape Out سال ۲۰۱۹
نقشه راه آموزش یونیتی
نقشه راه آموزش یونیتی در این مقاله؛ به این ترتیب است که ابتدا شما را با محیط نرمافزار یونیتی و اصطلاحات آن آشنا خواهیم کرد. سپس در خلال یک پروژه واقعی و با یک دستورالعمل گام به گام و تصویری، بازی سازی را شروع کرده و همه اصطلاحات و ابزارهای معرفی شده را به کار خواهیم گرفت تا کار با یونیتی را به خوبی بیاموزید.
دورههای مرتبط در دانشیار آی تی
برای آموزش یونیتی در این مقاله، چه پیش نیازی لازم است؟
آموزش یونیتی در این مقاله، پیش نیازی ندارد و حتی اگر هیچ تجربه برنامهنویسی ندارید باز هم مهم نیست، چون ما در کل مسیر همراه شما هستیم و همه چیز را به شما آموزش خواهیم داد.
تنها چیزی که نیاز دارید تا در این آموزش، گام به گام با ما همراه شوید، نصب نرمافزار یونیتی و دانلود منابع آماده در ابتدای مقاله، برای ساخت اولین بازی است.
بهترین نسخه یونیتی برای شروع کدام است؟
برای شروعِ آموزش یونیتی بهترین نسخه، نسخه رایگان و Personal است. یونیتی به طور کلی سه نسخه دارد، که نسخه رایگان و Personal برای آموزش با این مقاله، کافی است.
نسخه های یونیتی چه تفاوتی با هم دارند؟
تفاوت نسخه های یونیتی با هم فقط در برخی ویژگیهای فرعی است. وگرنه تمام نسخه های یونیتی در ویژگیهای اصلی موتور، به طور یکسان عمل میکنند.
قابل توجهترین فرق بین نسخه های Pro و Free این است که؛ بازیهای ایجاد شده با نسخه شخصی و رایگان Personal Free، باید با صفحه نمایش اولیه یا همان اسپلشِ Unity شروع شوند، در حالی که هر یک از نسخه های پولی Unity Pro، به شما اجازه میدهد اسپلش یونیتی را حذف و اسپلش خود را جایگزین کنید.
همچنین یونیتی، خدماتی مانند Cloud Build، Analytics و… هم ارائه میدهد که قفلش در نسخههای غیر رایگان و Pro، باز میشود.
آموزش نصب یونیتی Unity
روش راه اندازی یونیتی به این ترتیب است که از خود سایت Unity ، دکمه Try Personal را زده و در صفحه دانلود، روی دکمه Download Install کلیک کنید.
آموزش ورود به یونیتی و ساخت اکانت یونیتی
وقتی برنامه نصب شد قبل از ادامه کار و طبق تصویر زیر، برای ورود به یونیتی از شما خواسته میشود که Login شوید یا یک اکانت یونیتی بسازید.
شما باید یک اکانت یونیتی رایگان ایجاد کنید تا بتوانید نرمافزار را استفاده کنید. برای این کار، روی لینک Create One کلیک کنید و فرم ثبت نام زیر را پر کنید.
برای هر بار استفاده از یونیتی، باید با اکانت خود وارد شوید. البته حالت آفلاین یونیتی هم موجود است.
شروع بازی سازی با یونیتی و ایجاد یک پروژه جدید
برای شروع بازی سازی با یونیتی و ایجاد یک پروژه جدید، با اکانت خود وارد Unity شوید و تمام جزئیات لایسنس خود را تأیید کنید. صفحه پروژهها به طور خودکار ظاهر میشود تا یک پروژه جدید ایجاد کنید. مانند این:
روی New project کلیک کنید تا صفحه زیر را مشاهده کنید:
- پروژه خود را Space Debris نامگذاری کرده و محل ذخیره آن را در کامپیوتر مشخص کنید.
- در بخش Template متوجه خواهید شد که چند حالت دارید. هر کدام برای اینکه در وقت شما صرفه جویی شود، یونیتی را در یک حالتِ پیش فرض و متناسب با خواسته شما، قرار میدهد. شما در حال حاضر ۳D، را انتخاب کنید.
- در بخش Asset packages یا مجموعه پکیجها، شما میتوانید بستههای مشخصی را به پروژه بازی وارد کنید. Assetها منابع بازی هستند یعنی تمام چیزهایی که در بازی وجود دارند مثل صدا، بافت Texture و… . همچنین packages هم، به مجموعهای از Assetها گفته میشود که در یک فایل قرار دارند.
به عنوان مثال اگر یک تیراندازِ شخص اول میخواهید بسازید، باید از بخش زیر، مجموعه پکیجِ کنترلی شخص اول یونیتی را first-person controller package وارد کنید.
در ضمن شما هر مجموعه پکیجی را هم، در طول بازی سازی میتوانید وارد محیط بازی کنید. توجه: برای این آموزش، فعلا به این بسته ها نیاز ندارید.
- آنالیزگر یونیتی را در حالت خاموش بگذارید.
- در آخر هم روی Create project کلیک کنید تا یونیتی، پروژۀ شما را باز کند.
به این ترتیب خیلی راحت اولین پروژه خود را آغاز میکنید.
معرفی واسط کاربری Interface در محیط یونیتی
وقتی یونیتی باز شد صفحهای به شکل زیر خواهید دید که واسط کاربری یا Interface یونیتی است:
صفحه ورود شاید در ابتدا کمی گیجکننده باشد اما نگران نباشید، چون این صفحه کاملا قابلیت سفارشی سازی دارد. شما میتوانید تصمیم بگیرید که میخواهید اطلاعات کمی را نمایش دهد یا زیاد.
در گوشه بالا سمت راست، شما ۵ دکمه میبینید. اولین از سمت راست را انتخاب کنید. این زبانه، چیدمان یا Layout را مشخص میکند. از گزینههای در لیست، ۲ by 3 را انتخاب کنید.
ویرایشگر شما الان به این شکل خواهد بود:
حالا هر بخش را یک به یک توضیح خواهیم داد، پس به شماره گذاریها دقت کنید:
- نمای صحنه Scene View
- نمای بازی Game View
- پنجره سلسله مراتب Hierarchy Window
- پنجره پروژه Project Window
- پنجره Inspector
- نوار ابزار Toolbar
- دکمه های بازی Play Buttons
- تنظیمات متفرقه ویرایشگر Miscellaneous Editor Settings
۱٫ نمای صحنه Scene View در یونیتی
نمای صحنه یا سِن، همان جایی است که شما بازی خود را میسازید. در واقع یک پنجره سه بعدی است که شما میتوانید تمام آبجکتها، مدلها، دوربینها و قطعات دیگری که بازی شما را تشکیل میدهند را کنار هم جانمایی کنید و ببینید. یک صحنه معمولا یک سطح Level واحد از بازی شما را نشان میدهد.
وقتی بازی خود را در Unity تست میکنید، نمای صحنه با حالت فعلی بازی، خود را آپدیت میکند. هنگامی که بازی را متوقف میکنید، نمای صحنه به حالت اصلی خود بر میگردد.
فقط توجه داشته باشید که اگر همزمان با اجرای بازی، تغییری در نمای صحنه، روی بازی اعمال کنید، وقتی بازی متوقف شد، تغییرات هم از بین خواهد رفت.
۲٫ نمای بازی Game View در یونیتی
نمای بازی، بازی را از زاویه دید بازیکن نشان میدهد. اینجا همان جایی است که میتوانید بازی خود را اجرا کنید و ببینید که همه بخشها و قوانین بازی با یکدیگر چگونه کار میکنند.
نمای بازی دارای یک انتخابگرِ ابعاد است. این ویژگی به شما کمک میکند، ابعاد منظره را متناسب با یک صفحه نمایش خاص، تغییر دهید. به عنوان مثال ۴:۳، ۱۶:۹، ۱۶:۱۰ و… که مطابق با صفحه نمایش یک دستگاه مشخص مثل آی فون یا آی پد و.. باشد.
به این ترتیب اطمینان حاصل میکنید که بازی، تمام ابعاد و وضوح تصویری که میخواهید را، پوشش میدهد و هیچ تصویر یا آبجکت مهمی در تصویر قطع نمیشود.
در ضمن شما میتوانید با استفاده از دکمه Plus در انتهای زبانه کشویی، نسبت ابعاد دلخواه خود را اضافه کنید.
۳٫ پنجره سلسله مراتب Hierarchy Window در یونیتی
پنجره Hierarchy شامل لیستی از تمام مجموعهها Asset و آبجکتهای بازی GameObject است که در صحنه Scene شما استفاده شده است. در ضمن با حذف یک آبجکت از پنجره Hierarchy، میتوانید آبجکت مورد نظر را از صحنه به طور کامل بردارید.
رفته رفته، صحنه شما رشد میکند و تعداد آبجکتهایی آن هم افزایش پیدا میکند، در این حالت نوار جستجو Hierarchy که در تصویر زیر میبینید، کاربرد فوق العاده بالایی برای شما خواهد داشت.
آبجکت بازی یا GameObject در یونیتی چیست؟
به طور ساده، هر چیزی که در بازی شما است، گیم آبجکت GameObjects نام دارد.
اما در اصل، گیم آبجکت ها اشیاء خالی و خامی هستند که شما با اضافه کردن ویژگیهایی با نام کامپوننت Components، آنها را شخصی سازی کرده و به آنها خصوصیتهای متفاوتی میدهید.
گیم آبجکت ها حتی میتوانند مثل پوشههایی عمل کنند که آبجکتهای دیگر را در خود دارند. این امر باعث میشود صحنه بازی خود را به خوبی سازماندهی کنید که در ادامه، با آنها آشنا خواهید شد.
در ضمن هر صحنه scene جدید از همان ابتدا، با یک دوربین اصلی و نور مستقیم شروع میشود که آبجکت بازی محسوب میشوند. البته نیازی نیست که آنها را نگه دارید. شما همیشه میتوانید آنها را حذف کنید و بعدا هر زمان که بخواهید دوباره آنها را به صحنه اضافه کنید.
کامپوننت یا Component در یونیتی چه کاربردی دارد؟
کامپوننت ها به آبجکتهای بازی اجازه میدهند تا در بازی، ویژگی خاصی داشته باشند. مثلا از خود نور منتشر کنند یا به عنوان یک دوربین عمل کنند یا حتی از طریق اسکریپتها، رفتار پیچیدهتری از خود نشان دهند.
۴٫ پنجره پروژه Project Window در یونیتی چیست؟
پنجره پروژه شامل تمام منابع Asset شما برای بازی است. این بخش را به کمک پوشهها میتوانید، سازماندهی کنید. همچنین هر چیزی را که خواستید در بازی استفاده کنید، خیلی ساده از پنجره پروژه انتخابش کنید و با درگ به پنجره Hierarchy منتقل کنید. شما حتی میتوانید آنها را مستقیما از پنجره Project و بدون انتقال به Hierarchy، به درون صحنه درگ کنید.
در ضمن اگر پرونده ها را از رایانه خود به پنجرۀ Project بکشید، یونیتی به طور خودکار آن ها را به عنوان asset شناسایی و وارد میکند.
یونیتی هر چیزی را در پنجره پروژه باشد، مثل یک فایل OS – Operating systems یا سیستم عامل، سازماندهی میکند، پس اگر وسوسه شدید که تغییرات را به جای پنجره پروژه، مستقیما در فایل سیستم اعمال کنید، باید بگویم اشتباه بزرگی است چون باعث جدا شدن asset های شما و در نتیجه تکه تکه شدن بازی میشود.
در ضمن یونیتی برای هر asset، متا دیتا نگه میدارد. در نتیجه تغییر آنها در بین فولدرهای مختلف، باعث جدا شدن اطلاعات از هم میشود. پس اگر نیازمند ایجاد تغییراتی برای سازماندهی ASSET بودید – به خصوص Prefabs (از پیش ساخته شدهها) – حتما در پنجره Project آن را اعمال کنید.
پریفب یونیتی Prefabs چیست؟
مفهوم پریفب Prefab در یونیتی، تقریبا شبیه به کلاس در برنامهنویسی است به طوریکه ما یک پریفَب اصلی ایجاد میکنیم و نمونههایی از آن را در بازی قرار میدهیم. حال با تغییر پریفب اصلی، تمامی نمونهها نیز تغییر میکنند.
چون هر گیم آبجکتی که در صحنۀ بازی ساخته میشود، مختص همان صحنه است و نمیتوان در صحنههایِ دیگرِ بازی، از آن استفاده کرد. پس ما باید آن را در درون یک پریفب قرار دهیم تا هم آن را در صحنههای دیگر استفاده کنیم و هم اگر تغییری در پریفب ایجاد کردیم، روی تمام نمونههایی که از این پریفب در بازی هستند، اعمال شود.
پیشنهاد دانشیار آی تی به شما
کلاس در PHP + آموزش رایگان شی گرایی در PHP
خواندن مطلب
۵٫ پنجره بازرسی Inspector در یونیتی
پنجره اینسپکتور یا بازرسی Inspector خصوصیات هر گیم آبجکت را نمایش میدهد، مثل محل قرارگیری، اندازه و… و به ما اجازه اعمال تغییرات در آن را میدهد. در حقیقت هر پنجرهی Inspector مختص یک شی و تنظیماتِ مخصوص به آن است و این اطلاعات وقتی آن شی مورد نظر را از پنجره Hierarchy انتخاب میکنید، دیده میشوند.
۶٫ نوار ابزار Toolbar یونیتی
شما از نوار ابزار برای کار با GameObjectهای مختلف در صحنه، استفاده میکنید و چون هنگام توسعه بازی خود از این ابزارها زیاد استفاده خواهید کرد، بهتر است به خوبی با آنها آشنا شوید!
از آنجایی که نمیتوانید در یک صحنه خالی، کارکرد آنها را به خوبی مشاهده کنید، بهتر است در ابتدا، طبق مراحل زیر یک گیم آبجکت مثل مکعبی ساده به صحنه اضافه کنید.
آموزش ساخت اشیا مثل مکعب در محیط یونیتی
برای ساخت اشیا در محیط یونیتی طبق تصویر زیر مراحل را یکی پس از دیگری پیش برید. در این مثال، یک مکعب خواهید ساخت:
- از منوی یونیتی، تب GameObject را باز کنید
- از لیست ۳D Object را انتخاب کنید
- از لیستِ اشیا موجود روی Cube کلیک کنید
با بررسی این لیست در نوار ابزار، می توانید به شناخت خوبی در مورد آبجکتها برسید.
توجه: اگر هنگام آزمایش کردنِ گزینهها، Cube را گم کردید، فقط کافیست در Hierarchy بر روی Cube دو بار کلیک کنید تا این مکعب را در نمای صحنه ببینید.
نحوه کار با ابزار Hand در نوار ابزار یونیتی
ابزار Hand ابزار مفیدی است که ویژگیهای مختلفی دارد. اول ابزار Hand را انتخاب کنید سپس با ماوس، مکعب را بگیرید و حرکت دهید.
راست کلیک کنید و ماوس را بکشید تا دوربین در اطراف موقعیت فعلی شما بچرخد. توجه کنید که نماد دست به چشم تبدیل می شود.
بعد، Ctrl (یا Cmd) و Alt (یا Option) را نگه دارید. راست کلیک کرده و ماوس را به سمت بالا و پایین حرکت دهید تا در صحنه بزرگنمایی zoom ایجاد شود.
حرکت ماوس به پایین زوم میشود. یا اگر میخواهید این کار را به راحتی انجام دهید، فقط کافیست اسکرول ماوس را بچرخانید.
در آخر، دکمه سمت راست ماوس را نگه دارید و از کلیدهای W-A-S-D کیبورد خود استفاده کنید تا در اطراف صحنه، مثل یک تیرانداز شخص اول حرکت کنید.
به همین ترتیب، با فشار دادن E یا Q میتوانید آهستهتر به بالا و پایین حرکت کنید. اما برای حرکت سریعتر، کلید Shift را باید نگه دارید.
کلید میانبر ابزار Hand چیست؟
کلید میانبر پیش فرض برای ابزار Hand دکمه Q است. اما برای تغییر سریع به ابزار Hand، میتوانید اسکرول ماوس را فشار دهید تا نشانگر ماوس تبدیل به دست شود. وقتی هم که اسکرول را رها کردید، ماوس به شکل ابزار قبلی که در حال استفاده از آن بودید، باز خواهد گشت.
دورههای مرتبط در دانشیار آی تی
نحوه کار با ابزار Translate در نوار ابزار یونیتی
با ابزار جا به جایی یا Translate، شما میتوانید یک GameObject را در صحنه انتخاب و جا به جا کنید. کلید میانبر پیش فرض برای ابزار جابه جایی، W است.
گیزمو Gizmo در محیط یونیتی به چه معناست؟
در نظر داشته باشید که وقتی شما یک آبجکت را انتخاب میکنید و ابزار جابهجایی هم فعال است؛ از مرکز آن شی، سه فلش رنگی به جهتِ بیرون دیده میشوند. این سه فلش رنگی در یونیتی با نام gizmo شناخته میشوند. این فلشها محورهای سه بعدی شی را نشان می دهند: محور x فلش قرمز است، محور y فلش سبز است و محور z فلش آبی است. گیزمو اطلاعاتِ سه بعدیِ یک آبجکت را ارائه میدهد.
در این تصویر، Gizmo جهت هر محور را نشان میدهد. اما وقتی اطلاعات بیشتر در مورد یونیتی به دست آورید، میتوانید ویژگیهای دلخواهی به گیزمو اضافه کنید تا مواردی مانند محل قرارگیری دوربینها یا حتی جهت باد را به شما نشان دهد.
نکته جالب در مورد Gizmo این است که فقط در صحنه، نمایش داده میشود و در مواقعی که دیگر نیازی به آنها ندارید، میتوانید خاموششان کنید.
حرکت دادن آبجکت در یونیتی توسط ابزار Translate به ۲ روش زیر
دو روش برای جابهجا کردن آبجکت، توسط ابزار Translate وجود دارد.
۱. جابه جایی آبجکت با محورها
شما میتوانید یکی از این فلشهای رنگی را انتخاب کنید. وقتی فلش انتخاب شد به رنگ زرد درمیآید. سپس ماوس را حرکت دهید. خواهید دید که جسم فقط در آن جهت حرکت میکند.
به عنوان مثال اگر محور y را انتخاب کنید و یک شی را در حالی که در جهت طبیعی قرار دارد جابجا کنید، جسم شما فقط میتواند به بالا یا پایین حرکت کند.
۲. جابه جایی آبجکت با صفحه ها
شما همچنین، سه صفحۀ رنگی در مرکز GameObject میبینید که به شما اجازه میدهد، آبجکت را در دو محور حرکت دهید. رنگ مربع نشانگر آن است که در چه صفحهای حرکت می کند. به عنوان مثال، مربع سبز به معنای آن است که میتوانید یک جسم را در صفحه y حرکت دهید (این بدان معنی است که می تواند روی محورهای x و z حرکت کند).
چرخاندن آبجکت در یونیتی با ابزار Rotate
با ابزار چرخش Rotate Tool، شما میتوانید اشیاء را بچرخانید.
هنگام انتخاب یک شیء برای چرخش، متوجه سه خط رنگی کروی خواهید شد. این خطوط نشانگر محوری هستند که چرخش حول آن اتفاق میافتد. به سادگی خط را انتخاب کنید و ماوس خود را بکشید تا GameObject بچرخد.
برای اینکه بتوانید شی را راحت و بدون محدودیت محورها، در هر سمتی بچرخانید؛ فقط کافیست فضای بین خطوط را انتخاب کرده و ماوس خود را حرکت دهید.
کلید میانبر پیش فرض برای چرخش، E است.
نحوه کار با ابزار Scale در نوار ابزار یونیتی
با ابزار مقیاس Scale شما میتوانید، جسم خود را در امتداد یک یا هر سه محور، کوچک و بزرگ کنید. کلید میانبر پیش فرض برای ابزار مقیاس، R است.
برای تغییر مقیاس شی در امتداد یک محور، آبجکت را انتخاب کنید و سپس مربع انتهای محور را بکشید. آبجکت در امتداد آن محور مقیاس خواهد گرفت. برای مقیاس دادن به کل آبجکت، نقطه مرکزی GameObject را انتخاب کنید و ماوس را به جلو یا عقب بکشید تا آبجکت را به آرامی کوچک یا بزرگ شود.
دلیل انتخاب کلیدهای میانبر در یونیتی چیست؟
شاید فکر کنید که کلید میانبر R باید برای Rotate و S برای Scale باشد. اما اگر به بالا و سمت چپ صفحه کیبورد خود نگاه کنید متوجه میشوید که دلیل انتخاب این کلیدهای میانبر، دسترسی آسان به آنهاست.
یونیتی با فرض اینکه شما با دست راست از ماوس استفاده میکنید و با دست چپ با صفحه کلید کار میکنید چنین انتخابی کرده است. اگر دقت کنید انگشتان دست چپ شما در حالت عادی بر روی کلیدهای A-S-D-F قرار میگیرند که برای حرکت در صفحه یونیتی است و کلیدهای میانبر نوار ابزار Q-W-E-R-T هم دقیقا بالای همین کلیدها قرار دارند.
اگر بعضی مواقع به اشتباه، به جای کلید W بر روی کلید ۲ زدید و ویرایشگر به حالت ۲D و شکل زیر درامد، خیلی ساده دوباره کلید ۲ را فشار دهید تا ویرایشگر دوباره به حالت قبل یعنی ۳D برگردد.
نحوه کار با ابزار Rect در نوار ابزار یونیتی
ابزار Rect بیشتر در آبجکتهای دو بعدی و آبجکتهای (User Interface (UI بازی استفاده میشود ، اگرچه میتوانید از آن در GameObjects سه بعدی هم استفاده کنید.
این ابزار میتواند Assetهای دو بعدی را تغییر اندازه، مقیاس و چرخش دهد و همچنین نقطه محوری Pivot Point را که نقطه مرکزیِ چرخش برای جسم است، مجددا تنظیم کند. نقطه محوری توسط یک دایره بزرگ روی Asset نشان داده میشود.
کلید میان بر این ابزار T است.
نحوه کار با ابزار Transform در نوار ابزار یونیتی
ابزار Transform در واقع ابزارهای مقیاس، چرخش و تغییر مکان را در یک ابزار واحد، با هم ترکیب کرده است. در نتیجه با این ابزار شما بدون سوئیچ کردن بین کلیدهای مختلف هر کاری میتوانید انجام دهید.
تفاوت حالت Center و Pivot در محیط یونیتی چیست؟
در محیط یونیتی وقتی حالت روی Center است، اگر شما دو آبجکت انتخاب کنید، گیزمو در وسط دو آبجکت قرار میگیرد. در نتیجه هنگام چرخشِ آبجکتها، آنها با هم و به دور مرکز گیزمو میچرخند.
ولی حالت Pivot انتخاب شود؛ همانطور که در تصویر زیر میبینید، هر آبجکت دور نقطه pivot خود میچرخد:
تفاوت حالت جهانی Global و محلی Local در محیط یونیتی چیست؟
حالت Global یا جهانی
در این حالت؛ شما آبجکت خود را با توجه به محیط اطراف بررسی میکنید و به این ترتیب محورx از چپ به راست، محور y بالا و پایین و محور z طبق معمول به جلو و عقب میرود.
حالت Local یا محلی
در این حالت؛ تغییرات از سیستم مختصات خود ابجکت تبعیت میکنند و محورها تغییر میکنند تا با آبجکت منطبق باشند.
۷٫ دکمههای بازی Play Buttons
دکمههای بازی به شما اجازه شروع و توقف بازی را میدهند.
دکمه Play در بازی
پلی اولین دکمه است. وقتی Play را زدید، دکمهها آبی میشوند به این معنا که بازی شروع شده و در حال اجرا است.
همچنین رنگ ظاهر رابط یونیتی، تیرهتر میشود که نشان میدهد بازی فعال است.
چرا در هنگام اجرای بازی، رنگ رابط کاربری یونیتی تیرهتر میشود؟
تیره شدن interface دقیقا برای این منظور است که به شما یادآور شود؛ نباید در حین اجرای بازی تغییری اعمال کنید. همانطور که قبلا هم گفتیم، هر تغییر در زمانی که بازی در حال اجراست، وقتی بازی متوقف شد از دست میرود. این یک اشتباه رایج بین تازه کاران یونیتی است چون اغلب ترجیح میدهند بازی را راه اندازی کنند و همزمان تغییراتی هم اعمال کنند -که همه وقتی بازی Stop شد، ناپدید میشوند.
هرچند رنگ طوسیِ تیره خیلی واضح این اخطار را نمیرساند، اما خوشبختانه خودتان میتوانید این رنگ را تغییر دهید.
فقط کافیست مراحل زیر را طی کنید:
- اول Edit را انتخاب کنید و سپس Preferences تا پنجره زیر باز شود
- Colors را انتخاب کنید تا یک لیست از رنگها را ببینید. به این وسیله میتوانید به دلخواه رنگ رابط کاربری خود را تغییر دهید.
- بخش Playmode رنگ رابط کاربری در زمان تیره شدن حین بازی را نشان میدهد.
شما هر رنگی را میتوانید انتخاب کنید.
و اگر خواستید رنگ صفحه را به حالت قبلی برگردانید، کافیست بر دکمه Use Defaults کلیک کنید.
دکمه توقف Pause در بازی
دکمه Pause بازی را متوقف میکند و به شما اجازه اعمال تغییرات میدهد. اما باید توجه داشته باشید که در این حالت هم اعمال هر تغییری بر GameObjects بعد از stop بازی از بین میرود.
ویرایش GameObjects هنگام Play و Pause، یک تقلب است که به شما اجازه می دهد بدون ایجاد یک تغییر دائمی، روی بازی خود آزمایش کنید.
دکمه بعدی Step در بازی
با دکمه Step شما میتوانید در بازی خود فریم به فریم پیش بروید. این کار زمانی مفید است که میخواهید انیمیشنها را به صورت فریم به فریم مشاهده کنید، یا وقتی که میخواهید جای آبجکتهای خاصی را در طول بازی و گیمپلی، بررسی کنید.
۸٫ تنظیمات متفرقه ویرایشگر Miscellaneous Editor Settings
این تنظیمات، جنبههای مختلف ویرایشگر را بررسی میکند.
Collab در یونیتی چیست؟
اولین دکمه متفرقه، کشویی Collab است که در سمت راست نوار ابزار دیده میشود.
Collab یکی از آخرین خدمات یونیتی به تیمهای بزرگ است که کمک میکند تا در یک پروژه واحد، به طور یکپارچه، با هم همکاری کنند.
Services در یونیتی چه کاربردی دارد؟
دکمه بعدی دکمه خدمات Services است. خدمات بخشی است که میتوانید خدمات اضافی Unity را به بازی اضافه کنید. با کلیک بر روی دکمه باید یک Unity Project ID ایجاد کنید.
پس از اضافه کردن Project ID، میتوانید خدمات را به پروژه خود اضافه کنید.
خدمات متفرقه یونیتی چیست؟
- تجزیه و تحلیل Analytics
- تبلیغات درون بازی In-Game Ads
- پشتیبانی بازی چند نفرهMultiplayer Support
- خرید درون برنامه In-App Purchasing
- گزارش عملکرد Performance Reporting
- همکاری Collaborate
شما میتوانید اعضای تیم را به پروژه اضافه کنید، محدودیتهای سنی را تعیین کنید و حتی برخی از تنظیمات مهم پروژه را تغییر دهید.
Account در یونیتی
دکمه بعدی حساب کاربری است. این اکانت به شما اجازه میدهد تا حساب Unity خود را مشاهده و مدیریت کنید. وارد و خارج شوید و به روز بمانید.
Layers لایه های بازی در یونیتی
دکمه چهارم Layers لایه های بازی هستند.
شما میتوانید از لایهها برای جلوگیری از رندر برخی آبجکت ها و… استفاده کنید.
Layouts چیدمان در یونیتی
دکمه آخر چیدمان یا Layouts است.
با دکمه Layouts یا طرح بندی نماها Views، شما میتوانید ویووهای ویرایشگر خود را به طرح دلخواه بچینید، ذخیره کنید و بین آنها جابجا شوید. یونیتی به طرز شگفت آوری قابل تنظیم و شخصی سازی Customizable است.
هر یک از نماهای مختلف قابلیت تغییر اندازه، جابجایی و حتی حذف کامل از ویرایشگر را دارند.
البته شما همیشه میتوانید ویووهایی را که حذف کردهاید دوباره به صفحه اضافه کنید. این امکان به شما کمک میکند ویرایشگر را برای یک کار خاص تنظیم کنید.
به عنوان مثال، ممکن است شما بخواهید هنگام کار با یک انیمیشن، نمای Game را باز نکنید، اما ترجیح میدهید که ویووی انیماتور و انیمیشن را کنار هم باز کنید.
نحوه تنظیم چیدمان و پنجرهها در محیط یونیتی
تنظیم مجدد و هر بارهی پنجرهها برای کار خاصی که انجام میدهید، بعد از مدتی خسته کننده خواهد بود.
یونیتی شما را قادر میسازد طرح بندیهای خود را ذخیره کنید و هر زمان که بخواهید از طریق دکمه Layouts به آن تغییر حالت دهید.
برای این کار به راحتی میتوانید با استفاده از منوی Window یک پنجره جدید باز کنید.
چیدمان را می توان با استفاده از دکمه Layout ذخیره و فراخوانی کرد. البته خود یونیتی چند طرح از پیش تعریف شده مانند طرح های ۲ در ۳ و طرح بندی گسترده Wide دارد. گزینه Window از منوبار لیستی از نمایشهایی را ارائه میدهد که میتوانید به ویرایشگر خود اضافه کنید.
تا اینجای مقاله شما با بخشها و ابزارهای مختلف یونیتی آشنا شدید و در ادامه مقاله قرار است، با استفاده از همین اطلاعات، اولین بازی ساده خود را در یونیتی بسازید تا به درک عمیقتری نسبت به امکانات و تکنیکهای یونیتی برسید.
در این دوره آموزشی به صورت گامبهگام و از صفر ساخت بازی موبایل با یونیتی را در ساختار دو بعدی آموزش میبینید:
بازیسازی دو بعدی موبایل با یونیتی
آموزش پروژه محور یونیتی با ساخت بازی سفینه فضایی شوتر
ابتدا فایل ضمیمه برای این آموزش را اگر هنوز دانلود نکردهاید از اینجا دانلود کنید. چون قرار است شما با Assetهای از پیش ساخته شده، یک بازی تیراندازی بسازید.
فایل ضمیمه شامل چهار پوشه زیر است:
- game assets
- models
- starter project
- final project
نحوه باز کردن یک پروژه جدید در یونیتی
شما هم میتوانید روی صفحهای که از قبل باز کرده بودید کار کنید، یا از مسیر زیر، فولدر starter project را باز کنید:
File و بعد Open Project سپس انتخاب فولدر Space Debris Starter project
سپس در سیستم خود از پوشه Space Debris، فولدر game assets را باز کنید و تمام فایلهای داخلش را با درگ، به داخل فولدر Assets که در پنجره Project است، بیاندازید.
اگر شما پنجره پروژه Project window را نمیبینید، این مسیر را طی کنید:
Window / Layouts / ۲ by 3
وقتی که تمام فایلها به یونیتی وارد import شدند، شما صفحه زیر را میبینید:
نحوه تغییر سایز آیکون ها در یونیتی
همانطور که در تصویر بالا میبینید یونیتی به طور پیش فرض آیکون ها را در سایز بزرگ نشان میدهد. اما اگر شما حالت لیستی را ترجیح میدهید، از زبانهای که زیر صفحه Project و سمت راست قرار دارد استفاده کنید، تا به سایز مورد نظر thumbnails برسید.
با اینکه که نگه داشتن تمام Assets شما در یک پوشه مناسب به نظر میرسد، اما باعث بی نظمی هم میشود. البته این موضوع در شروع پروژه، مشکل بزرگی به نظر نمیرسد، اما با گسترش پروژه، شما کلکسیونی از Assets خواهید داشت.
نحوه سازماندهی منابع بازی Assets در یونیتی
با سازماندهی Assetهای خود از قبل، وقت کمتری را برای جستجوی آنها صرف خواهید کرد و زمان بیشتری برای ساخت بازی خواهید داشت. به همین دلیل قدم بعدی شما پوشه بندی Assets است.
در پنجره Project، روی دکمه Create کلیک کرده و از لیست گزینهها Folder را انتخاب کنید.
پوشه جدیدی که ایجاد شد را Materials نامگذاری کنید تا تصویر زیر را ببینید:
سپس پنج فولدر زیر را هم، به روش فوق بسازید تا بقیه منابع Assets خود را سازماندهی کنید.
- Models
- Prefabs
- Scripts
- Sounds
- Textures
اسکریپتهای زیر را بگیرید و با درگ داخل فولدر Scripts منتقل کنید:
Bullet, Debris, GameManager, IonCannon, RendererFade, ScreenWrap and ShipController
در مرحله بعد فایلهای زیر را انتخاب کنید و به فولدر Sounds منتقل کنید:
background-music, explosion and shoot
در نهایت هم بافت flint_like_rock_4787 را انتخاب کرده و به فولدر Textures ببرید.
دراین حالت پنجره پروژه شما به شکل زیر خواهد شد:
چند نکته مهم در سازماندهی Assets
- فولدرها در داخل یونیتی مثل همان شکلی که در سیستمتان هستند رفتار میکنند. شما میتوانید در یونیتی زیر پوشه بسازید یا پوشهها را داخل هم بکشید و خیالتان راحت باشد که دقیقا همین اتفاق در پوشههای کامپیوترتان هم رخ داده است. این دو با هم هماهنگ Match هستند تا کار برای شما در پیدا کردن assets، خارج از یونیتی آسان باشد.
- میببینید که آیکن GameManager متفاوت از آیکن بقیه اسکریپتها است. بیشتر بازیها آبجکتی به نام GameManager دارند که به عنوان “مغز” کل بازی عمل می کند و یونیتی هم یک نماد ویژه برای آن ایجاد کرده است.
- البته GameManager هم یک اسکریپت مثل بقیه موارد است اما تفاوت نماد به شما کمک میکند که این آبجکت مهم را سریعتر تشخیص دهید، چون اغلب به آن نیاز خواهید داشت.
نحوه ذخیره سازی پروژه در یونیتی و اهمیت آن
بعد از این مرحله شاید سریعا بخواهید بازی سازی را شروع کنید اما قبل از هر چیزی حتما باید پروژه خود را ذخیره کنید و این را به یک عادت در کار با یونیتی برای خود تبدیل کنید؛ چون یونیتی ویژگی ذخیره خودکار Autosave ندارد. اگر نرمافزار هنگ کرد یا برق شما قطع شود شما به جز سازماندهی پروژه، همه چیز خود را از دست خواهید.
یونیتی کار شما را در صحنهها scenes ذخیره میکند. یک صحنه میتواند فقط یک سطح level از بازی شما باشد، یا میتواند تنها سطح در کل بازیِ شما باشد.
در این آموزش فقط از یک صحنه برای همه چیز استفاده خواهید کرد.
از کیبورد Ctrl+S را انتخاب کنید تا بازی ذخیره شود. یک پیام ذخیره در ویندوز باز میشود. این صحنه scene را Main نامگذاری کنید.
آموزش وارد کردن مدل به پروژه بازی سفینه فضایی شوتر در یونیتی
بازی بدون بازیکن نمیشود. از داخل فولدر اصلی که دانلود کردهاید، وارد بخش Models و بعد Player شوید. یک فایل با فرمت FBX و چند عکس میبینید.
فایل FBX حاوی همه اطلاعاتی است که برای ساخت یک مدل ۳D، در کنار باقیه موارد مثل انیمیشنها مورد نیاز است. فایل بازیکنی که شما در این آموزش استفاده خواهید کرد متعلق به ComboMash برای بازی Hextraction است.
همه فایلها در پوشه Player را انتخاب کنید و با درگ، آنها را به بالای فولدر Assets منتقل کنید. به این ترتیب در پنجره پروژه خود این پیام را میبینید:
نقشه نرمال Normal Map در یونیتی چیست؟
برخی از فایلهای تصویری اطلاعات اضافهای به Unity منتقل میکنند، اما در قالب یک تصویر استاندارد ذخیره میشوند. در این مورد، p_pod_normal.jpg عمق یک سطح را مشخص میکند و اطلاعات روشنایی سطح را بدون نیاز به ایجاد ساختاری اضافه، برای ما فراهم میکند. به این، یک نقشه نرمال Normal Map گفته میشود.
با دیدن پیام بالا روی گزینه Fix Now کلیک کنید تا به یونیتی بگویید، با این فایل مثل یک Normal Map برخورد کند.
چه چیزی به همراه مدل وارد محیط یونیتی میشود؟
به طور پیش فرض یونیتی، دوربینها را هم همراه مدل شما به صحنه وارد خواهد کرد. اما در این بازی، شما فقط به یک دوربین نیاز دارید که همان دوربین اصلی است. پس hextraction_pod را در پنجره Project انتخاب کنید و در پنجره Inspector مطمئن شوید که تَب Model انتخاب شده است. سپس تیک Import Cameras را بردارید.
وقتی تمام شد روی دکمه Apply کلیک کنید.
سپس به همراه فایلهای player که داخل کردهاید، hextraction_pod را هم از پنجره پروژه بگیرید و با درگ به صحنه بیاورید.
به این ترتیب شما اولین نمونه از مدل خود را ساختید و یونیتی هم به طرز صحیحی بافت را وارد و روی مدل اعمال کرده است. اگر به Hierarchy هم دقت کنید، در لیست خود GameObject جدید را نشان میدهد.
کار با آبجکت های بازی GameObjects در یونیتی
همانطور که پیشتر هم گفتیم، هر چیزی که در Hierarchy است نوعی GameObject محسوب میشود. هر گیم آبجکت، موقعیت و اطلاعاتی دارد که به آن Transform گفته میشود و شامل اطلاعاتی مثل موقعیت Position، مقیاس Scale، چرخش Rotation و .. است.
ارتباط GameObject و Components در یونیتی
شما میتوانید با اضافه کردن Components به آبجکتهای بازی، آنها را به شکل دلخواه خود تغییر دهید. قبلا هم گفتیم که Components، رفتار و ظاهر آبجکتهای شما را مشخص میکنند.
به عنوان مثال؛ شما میتوانید از component نور استفاده کنید تا آبجکت شما بدرخشد و از خود نور ساطع کند. یا حتی میتوانید با Audio Source آبجکت خود را صدادار کنید.
شما با نوشتن اسکریپت، ویژگیهای خاص مدنظرتان را میتوانید به آبجکتها اضافه کنید.
GameObject ها مانند یک ظرف خالی هم عمل میکنند. اگر Alt را نگه دارید و همزمان روی مثلث کنار hextraction_pod در Hierarchy کلیک کنید، خواهید دید که زیرمجموعههای زیادی زیر GameObject باز میشود.
ملاحظه میکنید که برخی از این آبجکتها آبی و برخی سیاه هستند.
رنگ سیاه یعنی گیم آبجکت استاندارد است و رنگ آبی نشان میدهد که این آبجکت، نمونهای برای یک مدل است یا با یک Prefab به آبجکتهای دیگر وصل شده است.
دورههای مرتبط در دانشیار آی تی
کار با Prefabs در یونیتی به چه شکل است؟
در کل شما نباید از نمونههای کپی Model استفاده کنید. بلکه بهتر است از Prefabs استفاده کنید. Prefabs به شما این امکان را میدهد که GameObjects را ذخیره کنید و سپس هم با کد نوشتن یا با درگ کردن به صحنه، آنها را سریع و ساده کپی کنید.
هر کپی از Prefabs به هم مرتبط هستند به همین دلیل وقتی شما یک Prefab را تغییر دهید، همه نمونهای کپی شده از آن هم تغییر میکنند.
وقتی که شما روی یک کپی از Prefab در صحنه خود تغییراتی ایجاد میکنید و از این تغییرات راضی هستید، شاید بخواهید این تغییرات در بقیه نمونههای آن Prefab هم اعمال شود یا حتی بخواهید تمام تغییرات حذف شده و این نمونه از Prefab به حالت اصلی و اورجینال خود برگردد خبر خوب اینکه هر دو ممکن است.
نحوه ایجاد یک Prefab در یونیتی
برای ایجاد یک Prefab، یک آبجکت از Hierarchy انتخاب و به داخل پنجره پروژه درگ کنید.
وقتی با پیام زیر روبه رو شدید که آیا میخواهید یک Prefab جدید بسازید یا نوعی از یک Prefab، چون شما Prefab ندارید، جدید را انتخاب کنید.
از Hierarchy گزینه hextraction_pod را انتخاب کنید. در پنجره Inspector دو دکمه Open و Select دیده میشود. همپنین یک زبانه کشویی با نام Overrides موجود است.
Open به شما کمک میکند Prefab را باز و ویرایش کنید و فقط به شما اجازه کار روی همان Prefab را میدهد.Hierarchy فقط Prefabهای انتخاب شده را نمایش خواهد داد. برای برگشتن به حالت ویرایشگر نرمال، فلش بالای Hierarchy را بزنید.
Select باعث میشود Prefab در پنجره پروژه جانمایی شود. این گزینه وقتی شما جای Prefab خود را در پنجره پروژه بین فولدرهای زیاد گم کردید بسیار مفید خواهد بود.
وقتی شما تغییراتی در Prefab اعمال میکنید، شما تغییر را در یک نمونه واحد از Prefab ایجاد می کنید و این یعنی شما در حال Override بخشهای یک Prefab هستید. شما میتوانید این تغییرات را به دیگر Prefabها هم اعمال کنید یا تغییرات را باRevert برگردانید. این اتفاقات با زدن دکمه کشوییOverrides رخ میدهد.
نحوه ویرایش Prefab ها چگونه است؟
در حال حاضر، زیر سفینه بازیکن یک شبکه هست که عجیب به نظر میرسد. پس اول باید این Prefab را ویرایش کنید.
Prefab را انتخاب کنید و بعد در پنجره Inspector، روی Open کلیک کنید. سپس آبجکت tile_reference از Hierarchy را انتخاب کنید. این مورد یک زیرمجموعه مستقیم از آبجکت hextraction_pod است.
شبکه را با دکمه Delete پاک کنید و بعد فلش رویHierarchy را بزنید تا از ویرایشگر Prefab خارج شوید. پیام درخواست ذخیره ظاهر میشود که حتما Save را بزنید.
سپس روی hextraction_pod در پنجره Hierarchy راست کلیک کنید و با انتخاب Rename ، نام آبجکت را به Spaceship تغییر دهید.
بدون اینکه کاری انجام دهید؛ تنها درگ کردن یک آبجکت به پنجره Project، آن را به یک Prefab تبدیل میکند. شما میتوانید هرچقدر که بخواهید، با درگ کردن Prefab سفینه فضایی از پنجره Project به صحنه، از آن کپی بسازید.
در حال حاضر، این حرکت فقط مدلها را کپی میکند اما بعدها میتوانید اسکریپتها، تنظیمات صدا و … را هم کپی کنید. همانطور که ملاحظه میکنید Prefab ها واقعا پرکاربرد هستند.
تنظیمات دوربین در یونیتی چگونه است؟
کار با دوربین در یونیتی از مراحل مهم است. یک سفینه فضایی وقتی نتواند حرکت کند به درد نمیخورد. در این بخش شما کنترل سفینه را به دست بازیکن خواهید داد.
برای این کار شما باید با دو موضوع رو به رو شوید. ۱٫ دوربینها ۲٫ سیستم فیزیکی.
تنظیم سفینه فضایی در محیط یونیتی
سفینه را طی مراحل زیر تنظیم کنید:
- Spaceship را از پنجره Hierarchy انتخاب کنید
- به کمک پنجره Inspector موقعیت Position آن را با مختصات زیر تنظیم کنید X:10.66, Y:1.99, Z:10
- چرخش Rotation را هم در X:270, Y:0, Z:0 تنظیم کنید
اندازهها را در پنجره Inspector به شکل زیر خواهید دید:
البته انتخاب اعداد به شکل رندوم هستند.
به نمای Game نگاه کنید، متوجه میشوید که سفینه کمی به دوربین نزدیک است.
دو راه وجود دارد تا این موضوع را اصلاح کنید. هم میتوانید سفینه را به عقب جابهجا کنید یا جای دوربین را تغییر دهید.
از Hierarchy دوربین اصلی را به نام Main Camera انتخاب کنید. در Inspector کامپوننت دوربین را خواهید دید که کمک میکند اندازههای آن را تغییر دهید. با اینکه گزینهها بسیار زیاد هستند اما شما فعلا تنها با تصویر Projection و زاویه دید Field of View سروکار دارید.
شما میتوانید پرسپکتیو Perspective یا اورتوگرافی Orthographic در پروجکشن انتخاب کنید که نشاندهنده ظاهر بازی شما است.
آموزش کار با دوربین در یونیتی و تفاوت دو حالت Perspective و Orthographic
در کار با دوربین یونیتی باید بدانید که حالت پرسپکتیو، مانند چشم انسان عمل میکند. هر چه اجسام به چشم شما نزدیک باشند، بزرگتر دیده میشوند. در حالت اورتوگرافیک، عمق در نظر گرفته نمیشود. اجسام هر جایی و در هر فاصلهای نسبت به دوربین باشند، در سایز یکسان دیده میشوند.
به طور کلی بازیهای سه بعدی باید حالت پرسپکتیو را انتخاب کنند و بازیهای دو بعدی باید حالت اورتوگرافی را فعال کنند.
اگر بازی شما دوبعدی است اما المانهای سه بعدی در اختیار دارید، پروجکشن را حتما در حالت ارتوگرافیک بگذارید.
بر میگردیم به بازی خود و جانمایی بهتر دوربین:
سایز را بر ۱۸٫۸۵ تنظیم کنید. در این حالت، Game view به این شکل خواهد بود:
سفینه فضایی باید پرواز کند و برای اینکار شما باید در C# کد نویسی کنید اما در این آموزش از اسکریپتهای آماده استفاده میکنیم.
اما سوال مهم این است که چگونه این اسکریپتها به سفینه اضافه میشوند؟
اضافه کردن اسکریپت حرکت کاراکتر در یونیتی برای بازی سفینه فضایی
یک اسکریپت به طور خیلی ساده، نوعی کامپوننت است و راههای خیلی زیادی برای اضافه کردن کامپوننت به آبجکتهای بازی وجود دارد. شما تعدادی از این متدها را در این آموزش تجربه خواهید کرد.
ابتدا از Hierarchy سفینه فضایی را با نام Spaceship انتخاب کنید. سپس از منو بار، گزینه Component را انتخاب کنید. در پایین شما گزینهای تحت عنوان Scripts میبینید که خود هم شامل لیستی از اسکریپتهای موجود است. اسکریپت Ship Controller را انتخاب کنید.
الان اگر پنجره Inspector را چک کنید، میبینید که اسکریپت Ship Controller به عنوان یک کامپوننت از نوع اسکریپت، به آبجکت سفینه فضایی اضافه شده است.
دقیقا مثل بقیه کامپوننتها، شما میتوانید ویژگیها و اندازههای مورد نظر خود را از بخش ویرایشگر مشخص کنید. این موضوع به شما اجازه میدهد بر اسکریپتهای خود، در حالیکه بازی شما در جریان است، تغییر ایجاد کنید.
در این بخش، Move Speed را بر ۲۲ و Rotation Speed را بر ۲ تنظیم کنید. سرعت حرکت، سرعت جابه جایی سفینه را مشخص میکند و سرعت چرخش هم مشخص میکند که سفینه چقدر سریع یا کند، تغییر جهت میدهد.
اصلاح حرکت آبجکت در یونیتی
برای حرکت دادن سفینه خود، از کلیدهای جهتدار کیبورد استفاده کنید. خواهید دید که سفینه شما در حین حرکت، از صفحه نمایش شما خارج میشود که این ایراد باید برطرف شود. در نتیجه از منو بار مثل حالت قبل، از کامپوننت و بخش اسکرپت، Screen Wrap را انتخاب و به آبجکت spaceship اضافه کنید.
حتما متوجه شدهاید که این کامپوننت یک فیلد به نام Renderers دارد که مجموعهای از Skinned Mesh Renderers را به خود اختصاص میدهد که هندسهی سازنده یک مدل است.
اگر یک رندرر در صفحه نمایش شما نباشد، آبجکت در فضا بر اساس جهت حرکت و موقعیت مکانیش جا به جا میشود.
زبانه Spaceship را تا جایی که body آبجکت خود را ببینید باز کنید، سپس آن را با درگ به فیلد رندر منتقل کنید.
حالا میتوانید بازی خود را اجرا کنید اما به هیچ وجه ذخیره بازی را فراموش نکنید.
دورههای مرتبط در دانشیار آی تی
فیزیک یونیتی ؛ آشنایی با قوانین
در پرواز سفینه یک مشکل اساسی وجود دارد چون شما یکی از قوانین فیزیک یونیتی را رعایت نکردهاید.
یونیتی از فیزیک برای تشخیص برخوردها استفاده میکند. اگر یک GameObject کامپوننتِ RigidBody نداشته باشد، یک برخورد کننده بیحرکت static collider محسوب میشود.
برای جلوگیری از این اتفاق باید یک کامپوننت Rigidbody به آبجکت اضافه کنید.
قبلاً کامپوننتها را مستقیماً از نوار منو اضافه کردهاید. این بار، با Spaceship که همچنان در Hierarchy انتخاب شده است، روی دکمه Add Component کلیک و Inspector را انتخاب کنید.
در این حالت شما مِنو کامپوننت را میبینید. Physics و سپس Rigidbody را انتخاب کنید.
این کامپوننت گزینههای زیادی دارد. با انتخاب Is Kinematic شما میتوانید مکان آبجکت را دستی جابهجا کنید.
تیک Is Kinematic را فعال و Use Gravity را غیر فعال کنید؛ چون در این بازی شما به جاذبه زمین نیاز ندارید.
از آنجایی که آبجکتِ این بازی، پرواز میکند و به اجسام مختلفی تیراندازی میکند؛ طبیعتا مدیریت برخوردها در این بازی یک نقش اساسی ایفا میکند.
شما باید بدایند کِی بازیکن به یک سیاره شلیک میکند یا کی بازیکن با چیزی برخورد میکند.
با اشکال ساده مثل کره یا مکعب میتوانید برای بازی خود برخوردکننده بسازید. برخورد کنندهها با خطوط سبز در صحنه نمایش داده میشوند.
در این آموزش برای اینکه همه چیز ساده باشد، برخوردکننده کرهای را استفاده میکنیم.
در این دوره آموزشی رایگان ساخت یک ماشین دوبعدی را در موتور بازی سازی یونیتی یاد میگیرید:
آموزش فیزیک ماشین دوبعدی در یونیتی
نحوه ایجاد یک برخوردکننده کلایدر Collider در یونیتی
از پنجره Hierarchy، سفینه فضایی Spaceship را انتخاب کنید و بعد در پنجره Inspector ، دکمه Add Component را بزنید. سپس به ترتیب زیر کلیک کنید:
Physics /Sphere Collider
به این ترتیب شما یک دایره سبز پشت سفینه فضایی میبینید.
- از Hierarchy سفینه فضایی را انتخاب کنید سپس از Inspector برخوردکننده کرهای Sphere Collider را پیدا کنید.
- Center را با این مختصات X:0, Y:4.09, Z:-0.72 تنظیم کنید
- Radius را در ۱۴تنظیم کنید
- تیک Is Trigger را بزنید.
کامپوننت برخورد کننده کرهای شما به این شکل خواهد بود:
طبق تصویر زیر برخوردکننده باید سفینه را احاطه کند:
نحوه شلیک کردن در یونیتی با مسلح کردن بازی با توپ Arming the Cannons
پرواز کردن در بازی سرگرم کننده است اما بازیکنان تمایل زیادی به تیراندازی و منفجر کردن چند سیارک دارند. برای این کار یک اسکریپت فراهم شده است تا بتوانیداین خواسته بازیکننان را هم برآورده کنید.
مراحل زیر را طی کنید:
Hierarchy / Spaceship/ Inspector / Add Component/ Scripts / Ion Cannon
با این کار متوجه خواهید شد که یک کامپوننت صوتی Audio Source به طور اتوماتیک همراه با اسکریپت به آبجکت بازی شما اضافه میشود.
بعضی اسکریپتها نیازمند کامپوننت هستند و اگر کامپوننتها در آبجکت بازی پیدا نشوند، اسکریپتها به طور خودکار اضافه خواهند شد.
صدا در یونیتی ؛ اضافه کردن صدا به آبجکت
برای اینکه کاری کنید آبجکت شما صدا داشه باشد هم به منبع صوتی و هم کلیپ صوتی نیاز دارید. Audio Source میتواند به هر آبجکتی متصل شود در حالیکه کلیپ صوتی فقط یک فایل صوتی ساده است.
صدای شلیک shoot را از فولدر Sounds در پنجره Project به داخل فیلد Fire Sound درگ کنید.
متوجه خواهید شد که اسکریپت Ion Cannon یک فیلد Bullet یا همان گلوله هم دارد. وظیفه شما این است که یک آبجکت را به عنوان گلوله بسازید. جای نگرانی نیست فقط کافیست یک کره ساده بسازید.
ساخت گلوله در یونیتی برای بازی سفینه فضایی
برای ساخت گلوله مراحل زیر را طی کنید:
Hierarchy/ Create / ۳D Object/ Sphere
سپس کره را از Hierarchy انتخاب کنید و بعد به کمک Inspector، مقیاس آن را به این ترتیتب تنظیم کنید: X:0.47, Y:0.47, Z:0.47
کره را دوباره از Hierarchy انتخاب کنید و نام آن را به Bullet یا همان گلوله تغییر دهید.
از آنجا که گلوله شما در حال حرکت به دور صحنه است، باید قانون فیزیک را بر آن هم اعمال کنید:
برای این کار مراحل زیر را طی کنید:
از Hierarchy گلوله را انتخاب کنید و بعد در Inspector دکمه Add Component را بزنید. سپس Physics و بعد Rigidbody را بزنید تا کامپوننت Rigidbody به گلوله اضافه شود.
آموزش شلیک گلوله در یونیتی پروژه سفینه فضایی
گلوله برای جابجایی به سرعت نیاز دارد، بنابراین مطمئن شوید که تیک Kinematic فعال باشد. همچنین، مطمئن شوید که Use Gravity تیک ندارد.
اما در حال حاضر این گلوله، حتی پس از خروج از صفحه نمایش هم، دقیقاً مانند حالت اولِ سفینه فضایی، به حرکت خود ادامه خواهد داد. بنابراین از پنجره Project، اسکریپت Bullet را بر روی Bullet GameObject درگ کنید. اکنون، هنگامی که گلوله از صفحه خارج شود، به طور خودکار از بین خواهد رفت.
در آخر، آبجکت Bullet خود را به داخل پوشه Prefab در پنجره Project بکشید. این کار یک Prefab از گلولۀ شما ایجاد میکند تا بتوانید فقط با یک اسکریپت، هر چقدر که میخواهید، گلوله بسازید.
حالا که شما گلوله خود را به عنوان یک Prefab دارید، نمونه مدل آن را از Hierarchy پاک کنید.
دوباره Spaceship را انتخاب کنید و با استفاده از Inspector ، Prefab گلوله را به فیلد گلوله اضافه کنید. صفحه Inspector به این شکل خواهد شد:
در این مرحله در Hierarchy دوربین اصلی را با اسم Main Camera انتخاب کنید و از Inspector برای تغییر رنگ موارد زیر استفاده کنید:
Clear Flags تنظیم بر روی Solid Color
Background Color تنظیم بر روی black
پروژه را ذخیره و بازی را اجرا کنید. شما میتوانید با فشار دادن space گلوله شلیک کنید.
نحوه قراردادن زبالههای فضایی Debris در فضا
سفینه فضایی که پرواز میکند و قابلیت تیراندازی دارد، نیازمند چیزهایی است که به آنها شلیک کند. پس در این مرحله تعدادی سیارک به بازی اضافه خواهیم کرد.
از فایلهای دانلود شده، فایل rock_d_05.obj را بیابید و بعد داخل فولدر Models در پنجره Project درگ کنید.
روی rock_d_05.obj راست کلیک کنید و آن را به Asteroid تغییر نام دهید.
این فایل فقط اطلاعات خود مدل را، بدون هیچ انیمیشنی دارد.
مدل Asteroid را که به معنای سیارک است به صحنه درگ کنید تا یک نمونه از آن ایجاد شود. خواهید دید که سیاره در حال حاضر سفید رنگ است.
در این مرحله باید بیاموزید که چگونه بافت یا تکسچر به مدل ها بدهید.
نحوه ایجاد تکسچر و به کارگیری متریال روی مدلها در یونیتی
آبجکت Asteroid را باز کنید و زیر مجموعه آن را با نام rockLP001 انتخاب کنید. در Inspector خواهید دید که این زیر مجموعه، یک کامپوننت Mesh Renderer با خود به همراه دارد. رندرر به کمک متریالها آبجکت را در صفحه نمایش به تصویر میکشد.
پیشنهاد دانشیار آی تی به شما
متریال دیزاین چیست؟ + ۱۰ فریمورک برتر متریال دیزاین
خواندن مطلب
نقش متریال در یونیتی چیست؟
متریالها ظاهر آبجکت شما را مشخص میکنند. برای مثال بافت پیراهن نخی بسیار متفاوت از دیوار گچ است. یونیتی این کار را توسط Shaders ها انجام میدهد.
Shaders در یونیتی چیست؟
Shaders اسکریپتهای کوچکی شامل محاسبات ریاضی و الگوریتمهای محاسبه رنگ پیکسلهای رندر شده، بر اساس روشنایی و تنظیمات Material هستند.
یونیتی Shaders مختلف و زیادی را در اختیار شما قرار میدهد. به عنوان مثال میتوانید از آنها برای تهیه آسمان یا یک شی شفاف، استفاده کنید.
نحوه استفاده از متریال در بازی سفینه فضایی یونیتی
پوشه متریال را از پنجره Project باز کنید و بر روی دکمه Create کلیک کنید. از کشوی باز شده، Material را انتخاب کنید و نامش را به Asteroid تغییر دهید. در پنجره Inspector شما ویژگیهای موجود برای متریال را خواهید دید:
- با گزینه Shader یکی از انواع زیاد Shader های از پیش ساخته شده را انتخاب کنید. از آنجایی که پیش فرض استاندارد Shader دارای انعطاف پذیری زیادی است، بنابراین همان را انتخاب کنید.
- وقتی یک سیارک تیر میخورد برای محو کردنش Rendering Mode را روی Fade تنظیم کنید.
- Albedo دارای بافت واقعی است که شما میتوانید آن را رنگ آمیزی کنید.
عکس flint_like_rock_4787 را از فولدر Textures به Albedo در پنجره Project درگ کنید.
- در زیر پنجره Inspector به پیش نمایش متریال سیارک نگاهی بیاندازید. خواهید دید که متریال زیادی صاف و صیقلی است. (اگر پیش نمایش را نمیبینید طبق تصویر زیر، نوار عنوان Asteroid را، از پایین Inspector به بالا بکشید.)
زیر خاصیت Metallic، دو اسلایدر مشاهده خواهید کرد. اسلایدر اول ظاهر Metallic متریال را تعیین می کند، در حالی که دیگری میزان سخت و خشن بودن متریال را مشخص میکند.
در این اموزش Metallic را روی ۰٫۲۱۹ تنظیم کنید.
- اسلایدر میزان صافی Smoothness را روی عدد ۱۴۹ تنظیم کنید تا متریال شما به شکل زیر باشد:
الان نیاز دارید که این متریال ویرایش شده را به سیارک خود اضافه کنید. متریال Asteroid را از پنجره پروژه روی آبجکت Asteroid در صحنه درگ کنید.
نحوه اضافه کردن رفتار در یونیتی به سیارک Asteroid
الان زمان اضافه کردن رفتار به سیارک است.
اسکریپت Debris را از پنجره Project، داخل فولدر Scripts در Asteroid درگ کنید. اسکریپت Debris به طور خودکار یک دایره برخوردکننده و Rigidbody و منبع صوتی به Asteroid اضافه میکند. سپس تمام ویژگیها را تنظیم کنید:
- مرکز Sphere Collider را با این اعداد تنظیم کنید X:0.01, Y:-0.09, Z:0.89
- Radius 1.49
- تیک Is Trigger را بزنید
- برای Rigidbody تیک Use Gravity را بردارید
- تیک Is Kinematic را فعال کنید
- برای اسکریپت Debris (زبالههای فضایی) Min Speed (سرعت حداقل روی ۱۵ تنظیم شود)
- Max Speed روی ۳۰ تنظیم شود
- صدای explosion را از فولدر Sounds به فیلد Explosion Sound درگ کنید.
- برای جابهجایی آبجکت سیارک، Scale را روی X:3.02, Y:3.02, Z:3.02 تنظیم کنید
- کامپوننت Debris را هم به کامپوننت Renderer Fade اضافه کنید؛ چون وقتی یک گلوله به یک سیارک برخورد میکند، سیارک باید به جای یک باره ناپدید شدن، رفته رفته از صفحه نمایش محو شود. پس زمان برای ناپدید شدن Fade Time را روی ۵ تنظیم کنید
همچنین سیارکها در صفحه نمایش، باید دقیقا مثل سفینه فضایی، محدوده حرکتی داشته باشند.
از پوشه Scripts در پنجره Project، اسکریپت ScreenWrap را روی Asteroid درگ و اعمال کنید.
Asteroid یک آبجکت زیرمجموعه به نام rockLP001 دارد. این آبجکت زیرمجموعه را از کامپوننت Screen Wrap، به بخش Renderers در صفحه Inspector آبجکتِ Asteroid درگ کنید.
در آخر، Asteroid را از Hierarchy به پوشه Prefab در پنجره Project درگ کنید. در صفحۀ باز شده Original Prefab را انتخاب کنید. حالا که Prefab Asteroid شما ساخته شده میتوانید نمونه مدل آن را از Hierarchy با کلید Delete از کیبورد پاک کنید.
نحوه افزایش تعداد سیارک ها در بازی
در نهایت شما باید کاری کنید که سیارک ها خود به خود تولید شوند. بر روی دکمه Create در Hierarchy کلیک کنید و Create Empty را انتخاب و آن را Debris نامگذاری کنید.
توجه داشته باشید؛ نقاطی که زبالههای فضایی در آن تولید میشوند باید هم سطح بازیکن باشند. در غیر این صورت، بازیکن یا بالای آنها یا زیرشان پرواز خواهد کرد. برای حل این مساله از آبجکت missile_R_0 به عنوان مرجع استفاده کنید چون در مرکز مدل قرار دارد.
آبجکت بازی Debris را با درگ، زیر مجموعه آبجکت missile_R_0 کنید. به این ترتیب تغییرات و جابه جاییDebris ، از مجموعه مادر خود یعنی missile_R_0 تبعیت خواهد کرد.
در تنظیمات مجموعه مادر، موقعیت Debris را X:0, Y:0, Z:0 قرار دهید. با این ترفند مطمئن خواهید شد که Spaceship و Debris در یک سطح قرار دارند.
سپس Debris را به پایینHierarchy یعنی همانجایی که قبلا بود منتقل کنید.
آبجکت Debris را ۷٫۵ بار به سمت راست ببرید اما اگر مطمئن نبودید که درست انجامش دادهاید موقعیت آن را چک کنید که باید روی X:20.0, Y:1.72, Z:7.06 تنظیم باشد.
ساخت نهایی بازی سفینه فضایی شوتر در یونیتی
الان تمام المانهای مورد نیاز از سیارک گرفته تا سفینه فضایی را ساختهاید. باید آنها را کنار هم قرار دهید تا واقعا یک بازی ساخت شود.
از Hierarchy دکمه Create را بزنید و بعد Create Empty را انتخاب کنید. سپس در صفحه Inspector، روی نام آبجکت جدید کلیک کنید و آن را GameManager بنامید.
سپس در حالیکه در Hierarchy، GameManager انتخاب شده است، دکمه Add Component را کلیک کنید و بعد از انتخاب اسکریپتها، GameManager را بزنید.
خواهید دید که با این کار، یک منبع صوتی Audio Source هم اضافه میشود. همچنین کامپوننت GameManager ، فیلدهای زیادی دارد که باید تنظیمشان کنید چون در بخش تولید کردن سیارکها کاربرد دارد.
از فیلد Debris شروع کنید. قبلش مطمئن شوید که GameManager از Hierarchy انتخاب شده است. سپس Prefab Asteroid را به فیلد Debris درگ کنید.
GameManager مسئول تولید و پخش سیارکها است. چون با به کارگیری فیلد Debris، تصمیم میگیرد که کدام آبجکت تولید و پخش شود و شما با این کار برای GameManager مشخص میکنید که از Prefab سیارکها یا همان Asteroid استفاده کند.
تنظیمات GameManager
- Min Time را روی ۲ و Max Time را روی ۵ سِت کنید تا اسکریپت بداند با چه سرعتی باید سیارکها را تولید کند.
- Total Items on Screen را روی ۵ بگذارید. تا تعداد سیارکها را به ۵ محدود می کند و بازیکن گیج نشود.
- آبجکت Debris را از Hierarchy به فیلد Screen Debris درگ کنید. به این ترتیب GameManager سیارکها را از روی آبجکت Debris تولید میکند.
در نهایت کامپوننت GameManager به شکل زیر خواهد بود:
در نهایت؛ در کامپوننت Audio Source، background-music را به فیلد AudioClip اضافه کنید و مطمئن شوید که فیلد loop تیک دارد.
اکنون بازی را اجرا کنید تا ببینید همه چیز، چطور به نظر می رسد و فراموش نکنید که بازی را حتما ذخیره کنید.
به این ترتیب شما اولین بازی خود را به سادگی، در یونیتی ساختید.
جمع بندی مقاله جامع آموزش یونیتی Unity
در این مقاله از دانشیار آی تی؛
- به طور کامل با محیط نرمافزار یونیتی و پنجرههای مختلف آن آشنا شدیم
- نحوه ایجاد مدل در یونیتی را یاد گرفتیم
- طرز کار با نوار ابزار و حرکت در محیط نرمافزار را آموختیم
- تمام اصطلاحات مهم یونیتی اعم از Component، Assets ،GameObject ،Prefab و… را یاد گرفتیم.
- و در نهایت تمام آموختههای خود را در یک پروژه واقعی، پیاده کردیم و یک بازی سفینه فضایی شوتر ساختیم.
نظر شما در مورد صنعت بازی سازی ایران و جهان چیست؟ آیا توسعه یونیتی، همگام با گسترش صنعت ویدیو گیم خواهد بود؟ جواب سوالات را در قسمت نظرات این مقاله بنویسید و با ما در ارتباط باشید.
همچنین هر سوالی که در مورد آموزش یونیتی دارید میتوانید در قسمت نظرات این مقاله بپرسید تا پاسخگوی سوالات شما باشیم.
نویسنده: نگار سلیمانی
برای آموزش بیشتر و حرفهای؛ حتما در دورههای یونیتی پیشنهاد شده در دانشیار آی تی شرکت کنید.
دورههای مرتبط در دانشیار آی تی