آموزش ویدئویی بازی‌سازی با Unity - جلسه دهم: END GAME
1398/03/01 12:20 , میلاد صاحب نظر

آموزش ویدئویی بازی‌سازی با Unity - جلسه دهم: END GAME

سلام. به آخرین قسمت دوره بازی‌سازی با unity خوش‌آمدید. در این قسمت به ساخت صفحه پایان بازی و دست‌اندرکاران، منوی آغاز و خروج از بازی خواهیم پرداخت و برای ورود به فاز خروجی گرفتن از بازی آماده خواهیم شد. با ما همراه باشید!

مقدمه: آشنایی با موتور بازی‌سازی Unity قسمت سوم: حرکات قسمت ششم: GAMEPLAY قسمت نهم: تغییر مراحل و انیمیشن
قسمت اول: اصول اولیه Unity قسمت چهارم: دوربین دنبال‌گر قسمت هفتم: امتیاز‌دهی (SCORE) و UI قسمت دهم: پایان بازی
قسمت دوم: برنامه‌نویسی در Unity قسمت پنجم: برخورد قسمت هشتم: Game Over  

بسیار خب، به انتهای دوره رسیدیم. فقط یک سری تغییرات کوچک برای رسیدن به فاز خروجی گرفتن از بازی نیاز است. 

طراحی مراحل بازی

کارمان را با طراحی مناسب برای این بازی آزمایشی شروع می‌کنیم. ابتدا Level 2 که در ویدئوی قبلی ایجاد کردید را حذف کنید. بسیار خب حالا می‌خواهیم به یک روش هدفمند و مناسب مراحل بازی را طراحی کنیم.

طراحی مرحله  برای چنین بازی‌های ابتدایی و کوچک معمولا به این صورت است که تمام اشیاء بازی (یا فقط اشیاء مهم) را به پیش‌ساخته یا Prehab تبدیل می‌کنند تا فقط لازم باشد تغییرات مو به مو و دقیق را در یک بار انجام دهیم و در بقیه اشیاء و در بقیه مراحل هم اعمال شوند. 

پس اشیاء endpoint ،Obstacle ،Main Camera، Game Manager، Player و Canvas را به داخل پنل پروژه drag کنید تا به پیش‌ساخته تبدیل شوند. حالا هر تغییر در این‌ها انجام دهید، در هر تعداد مرحله و در تمام اشیاء زیر دسته آن‌ها اعمال خواهد شد.

اما همانطور که گفته شد این روش فقط برای بازی‌های کوچک و ابتدایی مثل این کاربرد دارد، اگر قصد دارید یک بازی بزرگ‌تر بسازید، توصیه می‌کنیم از یکی از روش‌های زیر استفاده کنید: 

۱- نوعی ابزار ویراستاری ایجاد کنید تا در تغییر مراحل به شما کمک کند

۲-  همه داده‌های مراحل را در یک صحنه جداگانه نگه دارید و آن صحنه را در بالای صفحه بارگذاری کنید

این دو روش نیاز به آموزش‌های خاص خود دارند که در بحث این قسمت نمی‌گنجند، بنابراید در مقالات و پست‌های دیگر به آن‌ها خواهیم پرداخت.

بسیار خب، یک فولدر برای پیش‌ساخته‌ها ایجاد کنید و آن‌ها را منظم در آن قرار دهید. حالا Level 1 را کپی کنید (هر تعدادی که می‌خواهید در این قسمت ما فقط ۳ مرحله ایجاد می‌کنیم). سپس به تغییر محل موانع در مراحل بپردازید و آن‌ها را از آسان به سخت طراحی کنید.

طراحی End Screen

صحنهپایانی یا End Screen صحنه‌ایاست که وقتی کاربر تمام مراحل را با موفقیت به پایان رساند ظاهر می‌شود و به کاربر تبریک می‌گوید و کلیدی برای بستن بازی دارد.

برای طراحی این صحنه به یک صحنه کاملا مجزا از صحنه بازی نیاز دارید. بنابراین به سربرگ file بروید و New Scene را انتخاب کنید یا می‌توانید کلید‌های ترکیبی CTRL + N را بزنید. 

حالا باید مقداری UI برای نمایش به کاربر ایجاد کنیم. پس در قسمت hierarchy کلیک راست کنید، به UI‌ بروید و Panel را انتخاب کنید. در قسمت قبل گفتیم که پنل یک پنجره است که کل صحنه را می‌پوشاند. 

حالا به حالت دو بعدی بروید و زوم صحنه را به گونه‌ای تغییر دهید که بتوانید کامل پنل را ببینید. در این پنل به روشی که در جلسه قبلی هم گفته می‌خواهیم یک متن با عنوان !Thanks for playing ایجاد کنیم.

پس خیلی راحت با کلیک راست کردن در Hierarchy، رفتن به UI و انتخاب Text متن خود را بنویسید و تغییرات لازمه را در آن اعمال کنید. یک متن هم برای نوشتن سازنده بازی که شما هستید ایجاد کنید.

همچنین به یک کلید هم نیاز داریم تا کاربر آن را بزند و پنجره بازی بسته شود. پس روی شیء Credits در داخل Canvas کلیک راست کنید، به UI بروید و Button را انتخاب کنید. 

می‌توانید نوعی سایه هم روی پشت‌زمینه کلید ایجاد کنید. برای این منظور، به یک component جدید به نام Shadow نیاز دارید. پس آن را با کلیک روی Add Component و جستجوی نامش ایجاد کنید. 

با تغییر دادن اعداد محورهای X و Y می‌توانید فاصله سایه و با تغییر دادن قسمت Effect Color می‌توانید رنگ و شفافیت و شدت سایه را تنظیم کنید. به این شکل می‌توانید یک سایه شیک برای کلید خود ایجاد کنید.

وقتی کارتان با تنظیمات ظاهری این صحنه تمام شد، وقت آن است که صحنه را به یک اسکریپت متصل کنید تا در زمان مناسب نمایش داده شود. بنابراین یک اسکریپت جدید با نام Credits ایجاد کنید و با دبل کلیک روی آن وارد ویژوال استودیو شوید.

در این اسکریپت قصد داریم تابعی ایجاد کنیم که در آن دستور ظاهر شدن در انتهای بازی را بنویسیم. این تابع باید به صورت public void تعریف شود نه فقط Void. 

دلیلش این است که وقتی برای کلید یک رویداد on click ایجاد کردید و خواستید تابعتان را در آن فراخوانی کنید، اگر تابع را به صورت public تعریف نکرده باشید تابع در لیست توابع فراخوانی ظاهر نمی‌شود.

بنابراین داخل اسکریپت Credits پس از حذف قسمت‌های اضافه کد زیر را بنویسید:

public void Quit()
{
Debug.Log("QUIT!");
Application.Quit();
}

در این کد تابعی به نام Quit داریم که یک پیغام با عنوان !QUIT در کنسول چاپ می‌کند و سپس کل بازی یا برنامه را می‌بندد. بنابراین اگر کد را Save کنید و به یونیتی بروید و در این صفحه روی کلید کلیک کنید، پیغام !QUIT را مشاهده خواهید کرد.

برای عمل کردن این کد، پس از Save کردن کدها به یونیتی بازگردید، روی شیء Button کلیک کنید، یک رویداد on click ایجاد کنید (با زدن علامت +)، روی Function کلیک کنید، به قسمت Credits بروید و تابع Quit را انتخاب کنید.

بسیار خب، کارمان با این صحنه تمام شد حالا آن را با نام Credits ذخیره کنید تا به سراغ طراحی منوی Start بازی برویم. 

طراحی منوی Start

برای این صحنه همان صحنه Credits را با زدن کلیدهای CTRL + D کپی کنید و نام آن را Menu بگذارید. می‌خواهیم فقط در متون و ظاهر و کاربرد کلید کمی تغییرات ایجاد می‌کنیم.

بسیار خب، متن را که فقط کافی است بنویسید Welcome to و بعد نام بازی را هر چه که می‌خواهید بنویسید (در ویدئو نام CUBETHON انتخاب شد). نام کلید را نیز به START تغییر دهید.

برای تغییر کاربرد کلید باید کدهای آن را تغییر دهیم. پس روی شیء Credits (یا اگر نامش را تغییر دادید روی همان نام) کلیک کنید و اسکریپت Credits را حذف کنید. یک اسکریپت جدید به نام Menu ایجاد کنید.

وارد ویژوال استودیو شوید، مزاحم‌های همیشگی را حذف کنید و حالا باید یک تابع برای شروع بازی بنویسید. بنابراین ابتدا تگ SceneManagement را به شکل زیر در بالای صفحه بنویسید:

using UnityEngine.SceneManagent;

سپس کد زیر را بنویسید:

public void StartGame()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
}

این کد دقیقا همان کدی است که در قسمت قبل برای رفتن به مرحله بعدی نوشتیم و هیچ چیز اضافه‌ای هم ندارد. اگر عملکرد این کد را فراموش کرده‌اید به قسمت قبلی مراجعه نمایید.

دیگر کد نویسی نداریم، پس کدها را Save کنید و به یونیتی بازگردید. روی شیء Button کلیک کنید، در قسمت رویداد on click اگر شیء شما وجود دارد که روی Function کلیک کنید اگر وجود  ندارد شیئی که در آن اسکریپت را ایجاد کردید را به درون قسمت خالی Drag کنید.

حالا روی Function کلیک کنید، به قسمت Menu بروید و تابع StartGame را انتخاب کنید. به این شکل منوی Start بازی را نیز ایجاد کردیم.

قدم آخر

تنها کاری که باید انجام دهیم تا تمام قسمت‌های مختلفی که برای این بازی ایجاد کردیم به هم متصل شوند، این است که به سربرگ File برویم، Build Settings را انتخاب کنیم و تمام منوها و مراحل بازی را به قسمت build اضافه کنیم.

بنابراین ابتدا صحنه Menu، سپس مراحل ۱ تا ۳ و در آخر هم صحنه Credits را به build اضافه کنید. ترتیب‌ قرار گرفتن صحنه‌ها مشخص می‌کند صحنه‌ها به چه ترتیب در بازی اجرا شوند. 

بسیار خب، تمام شد. حالا اگر Save کنید و بازی را Play کنید مشاهده خواهید کرد که اول منوی Start بازی نمایش داده می‌شود، وقتی روی کلید کلیک کنید وارد مرحله اول می‌شوید، اگر مرحله را تمام کنید پیام موفقیت می‌آید و بعد به مرحله دوم می‌روید و الی آخر تا به منوی پایانی برسید.

خلاصه

نه تنها این ویدئو تمام شد، بلکه به پایان دوره مقدماتی بازی‌سازی با یونیتی رسیدیم. در این دوره با محیط یونیتی، چگونگی کد زدن در آن و اجزای آن آشنا شدید و حتی اولین بازی خود را نیز ساختید.

این دوره تمام شد اما هنوز نکات و آموزه‌های دیگر برای زیباتر کردن گرافیک بازی، خروجی گرفتن برای پلتفرم‌های مختلف و کار با جوانب پیشرفته یونیتی باقی مانده‌ است.

بنابراین با MUG همراه باشید!‌

منبع: Brackeys

 مطالب مرتبط

 مقدمه ای بر زبان برنامه نویسی #C و پلتفرم NET Framework.
 آموزش گام به گام #C
 طبقه بندی زبان های برنامه نویسی
۷ زبان توسعه بازی Unity برای آموختن: کدام بهترین است؟
۸ بازی ساخته شده با unity توسط تیم‌های کوچک یا تک‌نفره
برنامه نویسی شیءگرا چیست؟

از آخرین دوره های آموزشی و تخفیف ها مطلع شوید

با تکمیل فرم زیر ، از اخبار و اطلاعات به روز برنامه نویسی و تکنولوژی عقب نمانید

آخرین مطالب

آموزش جامع SQL Server (جلسه ۱۲)
آموزش جامع SQL Server (جلسه ۱۲)

دستور UPDATE در SQL Server برای تغییر داده‌های موجود در یک جدول، از دستور UPDATE به شکل زیر استفاده ...

آموزش جامع SQL Server (جلسه ۱۵)
آموزش جامع SQL Server (جلسه ۱۵)

دستور DROP TABLE در SQL Server گاهی، لازم است یک جدول که دیگر استفاده‌ای ندارد را حذف کنید. برای ...

آموزش جامع SQL Server (جلسه ۳۵: Window Functionها – بخش ۲)
آموزش جامع SQL Server (جلسه ۳۵: Window Functionها – بخش ۲)

بخش اول از آخرین مبحث دوره جامع آموزش SQL Server در جلسه قبلی بررسی شد. این مبحث که ...

آخرین دیدگاه ها

دیدگاه خود را درباره این پست بنویسید

فرم ارسال نظرات