Unity 3D یک موتور سازنده بازی است که هم قدرتمند است، هم استفاده از آن آسان است. از همه مهمتر اینکه موتور ساخت بازی یونیتی به صورت رایگان در اختیار شما قرار میگیرد. البته نسخه پولی قدرتمندتری هم وجود دارد، اما با این نسخه رایگان هم میتوانید کارهای زیادی انجام دهید.
علیرغم نام آن، Unity میتواند هم برای بازیهای ۲ بعدی مورد استفاده قرار بگیرد و هم بازیهای ۳ بعدی. شما میتوانید برنامه نویسی را با زبان C# (سیشارپ)، Java (جاوا)، یا Boo، زبانی شبیه به زبان برنامه نویسی Python (پایتون) انجام دهید. در این آموزش، شما را با محیط ساخت بازی یونیتی آشنا میکنیم و در مورد نحوه تولید یک بازی ساده با استفاده از این موتور نیز توضیح خواهیم داد. برای پیروی از این دستورالعمل، اگرچه نیازی به تجربه در کدگذاری ندارید؛ اما بهتر است اطلاعاتی هرچند کم در مورد آن داشته باشید، زیرا با داشتن پیش زمینهای از زبان کدگذاری، راحتتر میتوانید به اثبات کد خود برای اشتباهات بپردازید.
ساخت بازی یونیتی بر اساس آموزش RollaBall در وب سایت Unity میباشد. آموزشهای رایگان زیادی وجود دارد که میتوانید آنها را در وب سایت Unity پیدا کنید.
مرحله ۱: یک پروژه جدید (New Project) ایجاد کنید
- Unity 3D را باز کنید.
- پنجره “Welcome to Unity” که به صورت پیش فرض با باز کردن Unity ظاهر میشود را ببندید.
- بر روی File > New Project کلیک نمایید.
- محل پروژه خود را انتخاب کنید. ما به شخصه ترجیح میدهیم که از یک پوشه اختصاصی برای نگهداری تمام پروژههای Unity استفاده کنیم.
- نام پروژه خود را بنویسید.
- بر روی دکمه “Create” کلیک کنید.
مرحله ۲: چیدمان Unity را تغییر دهید
اولین کاری که ممکن است بخواهید انجام دهید، تغییر طراحی Unity است. تمام پنجرهها قابل کلیک کردن و کشیدن به نقاط مختلف هستند. همچنین میتوانید با کلیک بر روی نوار بازشونده زیر Layout که در بالا سمت چپ صفحه قرار گرفته است، از چیدمان پیش فرض Unity نیز استفاده نمایید. ما چیدمان Tall را ترجیح میدهیم. همچنین بهتر است پنجره Game زیر پنجره Scene باشد. پنج پنجره اصلی وجود دارد که شما اکثر مواقع از آنها در Unity استفاده میکنید. این پنجرهها شامل Scene، Game، Hierarchy، Project و Inspector میباشند.
Scene: اینجا جایی است که بازی سازی اتفاق میافتد. در اینجا به شما نشان میدهد که چه عناصری در بازی دارید و از کجا به هم مرتبط میشوند. در گوشه بالا سمت راست یک نماد مکعبی وجود دارد که جهتگیری فضایی صحنه را نشان میدهد.
Game: نمایی را که دوربین اصلی هنگام اجرای بازی مشاهده میکند را نشان میدهد. شما میتوانید در این پنجره با کلیک بر روی دکمه Play که در مرکز بالای صفحه قرار گرفته است، بازی خود را تست کنید.
Hierarchy: تمام عناصری که به صحنه اضافه کرده اید را لیست میکند. Hierarchy به طور پیش فرض، دوربین اصلی محسوب میشود. شما میتوانید با کلیک بر روی Create و انتخاب شیء مورد نظر خود، عناصر جدید بسازید. همچنین میتوانید این کار را با استفاده از منوی کشویی GameObject در بالای صفحه انجام دهید.
Project: فایلهای استفاده شده برای بازی را نشان میدهد. شما با کلیک بر روی Create در زیر پنجره Project میتوانید پوشه، اسکریپت و چیزهایی از این قبیل ایجاد نمایید.
Inspector: اینجا جایی است که شما جوانب هر عنصر موجود در صحنه را سفارشی میکنید. فقط کافی است که گزینهای را در پنجره Hierarchy انتخاب کنید و یا بر روی گزینهای در پنجره Scene دوبار کلیک نمایید تا مشخصات آن در صفحه Inspector نشان داده شود.
مرحله ۳: Scene را ذخیره کرده و Build را شروع نمایید
- بر روی File > Save Scene کلیک کنید.
- Scene را که در زیر پوشه {نام پروژه} – Assets قرار گرفته، ذخیره نمایید.
- Assets یک پوشه از پیشساخته است که میتوانید در آن صحنهها و اسکریپتهای خود را ذخیره نمایید. ممکن است بخواهید پوشهای با نام Scenes در داخل Assets بسازید، زیرا پوشه Assets به هم ریخته و شلوغ خواهد شد. صحنه را با عنوان Scene یا Main یا چیزی شبیه به اینها ذخیره نمایید.
- بر روی File > Build Settings کلیک کنید.
- صحنه فعلی خود را برای ساخت (Build) اضافه نمایید.
- پلتفرم مورد نظر را انتخاب کنید. گزینههای زیادی از جمله کامپیوترها، سیستمهای بازی و گوشیهای هوشمند وجود دارد اما اگر اولین بار است که پروژه میسازید، بهتر است گزینههای Web Player یا PC/Mac/Linux Standalone را انتخاب نمایید.
- در پایین پنجره Build Settings، بر روی Player Settings کلیک کنید. با این کار، گزینههای Player Settings در Inspector باز میشود. در اینجا شما می توانید نام کمپانی، نام محصول (بازی)، نماد پیش فرض و موارد دیگر را تغییر دهید.
- از پنجره Build Settings خارج شوید. هنگامی که بازی شما در شرف آماده شدن بود، مجدداً به این پنجره بازخواهیدگشت.
مرحله ۴: یک Stage (صحنه نمایش) ایجاد کنید
سادهترین راه برای ایجاد یک استیج در Unity، اضافه کردن مکعبها است.
- برای انجام این کار، به Game Object > Create Other > Cube بروید و یا از منوی Create در پنجره Hierarchy استفاده نموده و مکعب اضافه کنید.
- با کلیک راست بر روی “Transform” در صفحه Inspector، مکعبها را تغییر شکل دهید. انجام این کار هرزمان که میخواهید یک Game Object جدید ایجاد کنید، تمرین خوبی است.
- مکعب را در Hierarchy انتخاب کنید. با دوبار کلیک بر روی نام آن در Hierarchy و یا استفاده از صفحه Inspector، نام آن را به “Wall” تغییر دهید. مکعب را در جهت X بکشید تا بلند و دیوار مانند شود.
- در صفحه Hierarchy بر روی “Wall” کلیک راست کرده و آن را سه مرتبه کپی (duplicate) نمایید تا چهار دیوار داشته باشید. ظاهراً به نظر میرسد که شما یک دیوار دارید، زیرا همگی یکسان هستند و همان نقطه را در فضا اشغال میکنند. آنها را به سمت نقطه مورد نظر بکشید / یا از گزینه “Transform” برای هر مکعب استفاده کنید تا آرایشی به دست آورید که شبیه به صحنه باشد.
توجه: برای نگاه به اطراف صحنه، دکمه وسط موس را فشار دهید و موس را به اطراف حرکت دهید. برای بزرگ نمایی و کوچک نمایی تصویر نیز میتوانید اسکرول این دکمه را به طرف بالا و پایین بچرخانید. برای چرخاندن زاویه دید نیز میتوانید در حین فشردن دکمه ALT، بر روی صفحه کلیک کرده و بکشید.
- با استفاده از منوی کشویی (Create Empty) در بالای صفحه، یک Game Object خالی بسازید. نام آن را “Stage” بگذارید. Transform آن را ریست کنید.
- هر چهار “Wall”را انتخاب کرده و آنها را زیر “Stage” Game Object بکشید.
- با انتخاب Create در صفحه Hierarchy یک Game Object مسطح اضافه کنید و از آن به عنوان کف استفاده نمایید. آن را “Floor” بنامید و به زیر Stage در Hierarchy بکشید.
توجه: پس از تغییر نام باید کلید Enter را فشار دهید، وگرنه تغییرات اعمال نخواهد شد. برای اطمینان از اینکه کف و چهار دیوار در یک ردیف قرار دارند، کف را به اندازه -۰.۵ در جهت Y تغییر شکل دهید. مقیاس کف در جهتهای X، Y و Z را یک دهم مقیاسی که برای اندازه دیوارها استفاده کرده اید، بسازید.
مرحله ۵: بازیکن را بسازید
شما میتوانید کاراکترها را از جاهای مختلفی مانند Unity Store به صورت آنلاین دانلود کنید، اما در این آموزش قصد داریم تا از یکی از Game Objectهای داخل Unity برای ساخت بازیکن استفاده کنیم.
- به Game Objects > Create Other > Sphere بروید.
- Sphere (گوی / شکل کروی) را در Hierarchy انتخاب کرده و نام آن را به “Player” تغییر دهید.
- Transform آن را ریست کنید.
اکنون نیاز به فیزیک داریم. با کلیک بر روی Add Component در پایین صفحه Inspector که شامل بازیکن انتخاب شده میباشد، بازیکن را تابع قوانین فیزیک کنید. Add Physics > Rigidbody. تمام تنظیمات را در حالت پیش فرض نگه دارید. متوجه خواهید شد که هر شیء به همراه مؤلفههای (Component) مختلفی که به آن اضافه شده است را میتوانید در Inspector مشاهده کنید. هر مکعب، کره و غیره دارای جزئی به نام “collider” هستند. این ناحیه فیزیکی صفحه است که جسم در آنجا در نظر گرفته میشود. اگر “collider” را خاموش کنید، جسم مورد نظر شما شبیه به روح شده و قابلیت عبور از درون سایر اجسام را دارد. با گذاشتن و برداشتن علامت تیک در مربع کنار نام Component میتوانید، مؤلفهها را روشن و خاموش کنید.
مرحله ۶: حرکت دادن بازیکن به اطراف
- بازیکن مورد نظر را در Hierarchy انتخاب کنید.
- مؤلفههایی را که نمیخواهید در Inspector ببینید را با کلیک بر روی فلش رو به پایین در سمت چپ نام هر مؤلفه، کوچک کنید. به این ترتیب، فضای کار شما کمی تمیزتر خواهد شد.
- در پایین پنجره Inspector، بر روی گزینه Add Component کلیک کنید.
- New Script (متن جدید) را انتخاب کنید، نام Script را چیزی شبیه به “PlayerController” بگذارید و یک زبان برنامه نویسی انتخاب نمایید. (ما از سیشارپ استفاده کردیم.)
- بر روی Create and Add کلیک کنید.
- به منظور مرتب نگه داشتن فایلها، پوشه Assets را در پنجره Project باز کنید و پوشهای با نام Scripts بسازید. اسکریپتهای جدید خود را در این پوشه قرار دهید.
- برای باز کردن اسکریپت به منظور ویرایش آن، دوبار بر روی نام اسکریپت در Inspector کلیک کنید، یا آن را از طریق پنجره Project باز کنید. با این کار، یک محیط برنامهنویسی به نام MonoDevelop باز میشود.
توجه: اگر این اولین باری است که کد گذاری انجام می دهید، باید بدانید که این کار میتواند بسیار گیج کننده باشد. مطمئن شوید که هجی حروف، موارد گفته شده، باز و بسته کردن کروشهها، پرانتزها، آکولادها، علائم نقل قول و غیره را به خوبی رعایت کرده اید. همچنین مراقب خطاهایی باشید که در نتیجه نداشتن نقطه ویرگول در انتهای یک کد، رخ میدهد. به طور پیش فرض باید دو بخش به صورت آماده از قبل در کد شما وجود داشته باشد: void Start () و void Update (). Start به محض ورود شیء به درون بازی اجرا میشود و Update در حالی که شیء در بازی وجود دارد به صورت پیوسته اجرا خواهد شد. بخش سومی با نام FixedUpdate نیز برای رسیدگی به پروتکلهای مربوط به فیزیک اضافه میکنیم که باید به این صورت باشد:
void FixedUpdate () {
}
|
پیش از آنکه دستورات را وارد کنیم، باید متغیرها را اعلام نماییم. این کار را میتوانید در بالای صفحه، در داخل آکولاد بعد از Public Class PlayerController (یا مشابه آن): Monobehaviour، اما قبل از تابع void Start () انجام دهید. برای حرکت، از متغیری با نام “speed” استفاده میکنیم، که میتوان آن را برای تعیین سرعت حرکت کاراکتر در اطراف صحنه تنظیم نمود. متغیرهای (float) و (speed) را اینگونه اعلام کنید:
public float speed; |
نقطه ویرگول به برنامه میگوید که این انتهای خط کد است. در صورتی که گذاشتن نقطه ویرگول را در انتهای خط کدها فراموش کنید، خطایی دریافت خواهید کرد، پس همیشه حواستان به آن باشد.
در زیر FixedUpdate، دو float دیگر اعلام کنید، moveHorizontal و moveVertical. اینها بسته به دستورات صفحه کلید کاربر، مقادیری به خود میگیرند و FixedUpdate آنها را در هر فریم به روز میکند.
float moveHorizontal = Input.GetAxis(“Horizontal”); float moveVertical = Input.GetAxis(“Vertical”);
|
سایر موارد
باز هم درون FixedUpdate، یک Vector3 جدید ایجاد کنید، نوعی متغیر با سه بعد که برای جا به جایی اجسام در فضای سه بعدی مفید است. این متغیر، ورودی کاربر را برای حرکت افقی و عمودی به خود میگیرد و در جهت بالا / پایین صفر خواهد بود زیرا در این بازی، بازیکن فقط میتواند در دو بعد حرکت کند.
Vector3 movement = new Vector3(moveHorizontal,0.0f,moveVertical); |
در آخر با استفاده از rigidbody.AddForce، پروتکلی ساخته شده در مؤلفه rigidbody (جسم سخت)، نیرویی به بازیکن بدهید تا آن را به اطراف منتقل کند.
rigidbody.AddForce(movement*speed*Time.deltaTime); |
- Time.deltaTime برای روانسازی حرکت استفاده میشود. بعداً در ویرایشگر Unity، متغیر سرعت را تنظیم خواهیم کرد.
- فایل سیشارپ (CSharp) را ذخیره کرده و به Unity برگردید.
- به صفحه Inspector بازیکن بروید و به اسکریپت حرکتی که ایجاد کرده اید، نگاه کنید. باید یک باکس برای متغیر عمومی شما یعنی speed وجود داشته باشد. میتوانید مقادیر متغیرهای عمومی را با استفاده از Inspector تغییر دهید.
- سرعت / speed را برابر ۱۰۰ – ۱۰۰۰ قرار دهید و بر روی دکمه Play در مرکز بالای صفحه کلیک نمایید. شما باید بتوانید با استفاده از کلیدهای حرکتی پیشفرض Unity، ASWD یا کلیدهای جهتدار، توپ را به اطراف حرکت دهید.
- برای خارج شدن از حالت آزمایش، مجدداً بر روی دکمه Play کلیک کنید.
مرحله ۷: نورپردازی کنید
- یک Game Object خالی با نام “Lights” بسازید. این کار را با کلیک بر روی GameObject در نوار ابزار بالا و انتخاب گزینه “create empty” انجام دهید.
- با انتخاب گزینه directional light از طریق نوار ابزار “create” در صفحه Hierarchy، نور جهتدار بسازید و آن را “Main Light” نامگذاری کنید. با کشیدن آن بر روی “Lights” در Hierarchy، آن را تبدیل به بخش کوچکی از Lights کنید. این کار، درست شبیه به قرار دادن فایل درون یک پوشه است.
- با انتخاب Main Light، میتوانید تنظیمات Light را در صفحه Inspector تغییر دهید. به عنوان مثال، نوع سایه را به “Soft Shadows” و وضوح تصویر را به “Very High Resolution” تغییر دهید.
- در صفحه Inspector چرخش چراغ اصلی / Main Light را تغییر دهید تا زاویه آن پایینتر از صحنه قرار گیرد. ما از ۳۰X، ۶۰Y، 0Z استفاده کردیم.
- برای کپی کردن Main Light، روی آن در صفحه Hierarchy کلیک راست کنید. نام کپی را “Fill Light” گذاشته و آن را مانند Main Light در Lights قرار دهید.
- با تغییر رنگ به رنگ آبی روشن و کاهش میزان شدت / Intensity به ۰.۱ (در Inspector)، شدت Fill Light را تعدیل نمایید.
- سایه را به “No Shadows” تغییر دهید.
- Fill Light را در خلاف جهت نور اصلی قرار دهید. برای ما (۳۳۰, ۳۰۰, ۰) بود.
مرحله ۸: زاویه دوربین را دقیق تنظیم کنید
ما میخواهیم دوربین در زاویه پایین صحنه قرار بگیرد، به همین خاطر Main Camera را در Hierarchy انتخاب کنید و Transform آن را تا جایی تنظیم کنید که تصویر در پیش نمایش دوربین (در پایین سمت راست صفحه Scene، با دوربین انتخاب شده) خوب به نظر برسد.
ما از (۰, ۱۰.۵, -۱۰) برای موقعیت و از (۴۵, ۰, ۰) برای چرخش استفاده کردیم.
در صورت تمایل میتوانید دوربین را در صحنه به اطراف بکشید تا در موقعیت مورد نظر شما قرار بگیرد.
مرحله ۹: کاری کنید که دوربین، بازیکن را دنبال کند
ما میخواهیم که دوربین، بازیکن را حین حرکت به اطراف دنبال کند. به این منظور، با افزودن یک مؤلفه جدید اسکریپت به Main Camera در صفحه Inspector، اسکریپتی با نام “cameraMovement” ایجاد کنید. دوبار بر روی این اسکریپت کلیک کنید تا در MonoDevelop باز شود. این اسکریپت به Game Object دیگری، یعنی بازیکن، دسترسی پیدا میکند، بنابراین شما باید این را قبلا از تابع Start() اسکریپت با نوشتن الگوی زیر اعلام کنید:
public GameObject player; |
یک Vector3 به نام “offset” با نوشتن الگوی زیر ایجاد کنید:
private Vector3 offset; |
در زیر تابع Start() مقدار offset را طبق الگوی زیر که موقعیت (x,y,z) دوربین است، تعیین کنید:
offset=transform.position; |
در زیر تابعی با نام LateUpdate ()، موقعیت دوربین را به عنوان موقعیت بازیکن به علاوه مقداری offset تعریف نمایید:
void LateUpdate () { transform.position=player.transform.position+offset;}
|
اسکریپت را ذخیره کرده و به Unity بازگردید.
ما باید یک Game Object را به بازیکنی که در اسکریپت cameraMovement تعریف کرده ایم، اختصاص دهیم.
Main Camera را انتخاب کرده و به صفحه Inspector نگاه کنید. در زیر اسکریپت cameraMovement، باید یک باکس با نام “Player” وجود داشته باشد. در حال حاضر به None (GameObject) اختصاص یافته است.
“Player” را از Hierarchy به درون این باکس بکشید تا GameObject بازیکن را به اسکریپت cameraMovement اختصاص دهید.
حتما اسکریپت جدید را به داخل پوشه اسکریپتها (در صفحه Project) که در زیر Assets ایجاد کرده اید، بکشید. با کلیک بر روی دکمه Play در مرکز بالای صفحه، بازی را امتحان کنید. شما باید قادر به حرکت دادن بازیکن به اطراف با استفاده از کلیدهای جهتدار باشید و دوربین نیز باید حرکت شما را دنبال کند.
مرحله ۱۰: آیتم بسازید
- یک Game Object جدید ایجاد کنید. این Game Object میتواند یک کره، یک مکعب، یک کپسول یا یک استوانه باشد. ما از مکعب استفاده کردیم.
- نام آن را “Item” بگذارید.
- با انتخاب Tags و ایجاد یک برچسب / Tag جدید به نام “item”، آن Item را به عنوان “item” برچسب بزنید و سپس برای آن Game Object به Tags برگشته و برچسب “item” جدیدی که ساخته اید را انتخاب نمایید.
- تمام آیتمهای خود را به عنوان “item” برچسب بزنید. حتما هجی و بزرگی حروف را با دقت رعایت کنید.
- Item را در یک Game Object خالی به نام “Items” قرار دهید.
- Transform آنها را ریست کنید.
- به آن Rigidbody بیفزایید.
- چندین بار از آن کپی گرفته و نسخه های کپی شده را در اطراف صحنه قرار دهید.
مرحله ۱۱: کاری کنید که بازیکن، آیتمها را جمع آوری کند و امتیاز را نمایش دهد
Game Object بازیکن را انتخاب نموده و اسکریپت حرکت بازیکن را از طریق صفحه Inspector باز کنید و تغییراتی در آن اسکریپت ایجاد کنید که به بازیکن امکان جمع آوری و ثبت آیتمهایی که جمع کرده است را بدهد.
برای این کار باید دو اعلام انجام دهید: یکی متغیری است که امتیاز شما را ثبت میکند و دیگری متن GUI است که امتیاز شما را در نمای Scene نشان میدهد.
private int count;public GUIText countText;
|
در زیر تابع void Start()، count و CountText را مقداردهی میکنیم، تابعی که بعدا خواهیم نوشت.
count=0; CountText(); |
برای آنچه که هنگام برخورد بازیکن با آیتمها اتفاق میافتد، تابع جدیدی بنویسید. این قسمت باید متعلق به خود آن باشد، دقیقاً مانند بخشهای void Start() و void Update.
void OnTriggerEnter(Collider other){ if (other.gameObject.tag == “item”) {other.gameObject.SetActive(false); count=count+1; CountText();} } |
تابع CountText که امتیاز را در صفحه نمایش GUI به روز میکند، بنویسید.
Void CountText(){countText.text=”Count: ” + count.ToString(); } |
کد را ذخیره کرده و به Unity بازگردید.
- تمام آیتمهای خود را انتخاب کنید، مطمئن شوید که تمام آنها به عنوان items برچسب زده شده اند و تیک مربع کنار “Is Trigger” را در مؤلفه Box Collider پنجره Inspector بزنید.
- همچنین تیک مربع کنار “Is Kinematic” در rigidbody را نیز بزنید. این امر اساساً با خاموش کردن نیروی جاذبه، از افتادن وسایل به کف زمین جلوگیری میکند.
- برای countText با استفاده از گزینه Create در Hierarchy، یک متن GUI جدید (رابط کاربری گرافیکی) ایجاد کنید.
- ترنسفورم GUI Text را به (۰,۱,۰) تغییر دهید و به آن یک پیکسل offset (10, -10) در مؤلفه GUIText صفحه Inspector بدهید.
- GUI Text را به درون باکس Count Text در Inspector شامل بازیکن انتخاب شده، بکشید.
مرحله ۱۲: ایجاد خطر کنید
این پنلهای نه چندان واضح، بازیکن را به هوا و احتمالا از لبه عرصه پرتاب میکنند، در این صورت بازی تمام میشود. فرایند ایجاد خطر مشابه فرایند ایجاد آیتم است.
- یک Game Object خالی با نام “Hazards” بسازید.
- یک Quad جدید ایجاد کرده و نام آن را “Hazard” بگذارید.
- آن را به عنوان خطر / hazard برچسب زده و تیک “Is Trigger” را بزنید.
- رنگ آن را تغییر دهید تا بتوانید آن را با انتخاب Mesh Renderer در Inspector که شامل hazard انتخاب شده است، ببینید و متریال آن را تغییر دهید.
- بر روی منوی کشویی کنار Materials کلیک کنید و از دایره خاکستری کوچکی که در سمت راست کادر است استفاده کنید تا متریال متفاوتی از متریال خاکستری پیش فرض برای hazard انتخاب نمایید. ما یک متریال سفید از قبل نصب شده دارد که از همان استفاده میکنیم.
- چرخش hazard را به ۹۰ در محور X تغییر دهید و ارتفاع Y آن را به -۰.۴ کاهش دهید، به این ترتیب، یک مربع سفید کوچک است که درست در کف زمین قرار دارد.
- اسکریپت بازیکن را در زیر تابع OnTriggerEnter() ویرایش کنید، به این ترتیب، تعیین میکنید هدفی که بازیکن به طرف آن میرود خطر است، نه یک آیتم معمولی. به بازیکن بگویید در صورت برخورد با خطر، عمل پرش را انجام دهد.
void OnTriggerEnter(Collider other){ if(other.gameObject.tag==”item”){ other.gameObject.SetActive(false); count = count + 1; CountText(); } if(other.gameObject.tag==”hazard”){ other.gameObject.SetActive(false); Vector3 jump = new Vector3(0.0f, 30, 0.0f); rigidbody.AddForce (jump * speed * Time.deltaTime); }
|
کد را ذخیره کنید، به ویرایشگر Unity برگردید و hazard / خطر را چند بار کپی کنید.
خطرهای کپی شده را در اطراف صحنه بازی قرار دهید و بازی را امتحان کنید.
منبع: InstrucTables