مرحله‌ی پنجم: مدیریت کامپوننت‌ها

بعد از ایجاد هر گیم‌آبجکت، با استفاده از پراپرتی‌های کامپوننت Transform (و یا ابزارهای دگرگونی) اقدام به قرار دادن آن در جایگاه مناسبش در صحنه می‌کنیم. سپس در صورت لزوم کامپوننت‌های جدیدی به آن اضافه می‌کنیم. لیستی از کامپوننت‌های پراستفاده در یونیتی در بخش بعدی آورده شده است.

هر کامپوننت یونیتی دارای آیکون Help بوده که با کلیک بر روی آن صفحه‌ی توضیحات آن کامپوننت در داکیومنتیشن یونیتی (در مرورگر) باز می‌شود.

در صورت نصب بودن داکیومنتیشن یونیتی بر روی ادیتور قابلیت دسترسی آفلاین به این صفحه وجود دارد و در غیر این صورت آدرس نسخه‌ی آنلاین صفحه در مرورگر لود می‌شود. داکیومنتیشن آنلاین یونیتی (به آدرس https://docs.unity3d.com) با آی‌پی ایران قابل دسترسی نیست.

بعد از اضافه کردن کامپوننت‌های موردنیاز به تنظیم مقادیر پراپرتی‌های آن‌ها می‌پردازیم. این مقداردهی می‌تواند با تایپ مستقیم یک عبارت، نسبت دادن یکی از assetهای پروژه به پراپرتی و یا از طریق کد صورت پذیرد.

نکته با بردن فلش ماوس بر روی نام پراپرتی‌های عددی در Inspector، شکل ماوس به یک فلش دوطرفه تبدیل می‌شود. این اتفاق بدین معنی است که امکان تغییر مقدار درون پراپرتی با drag کردن ماوس به چپ و راست وجود دارد.

نکته امکان انجام محاسبات کوچک در فیلدهای عددی این پراپرتی‌ها وجود دارد. برای مثال در صورتی که قصد داشته باشیم تا به یک عدد موجود در فیلد مقداری (برای مثال x) اضافه شود لزومی به محاسبه‌ی مقدار جدید نیست؛ بلکه کافی است در ادامه‌ی عدد موجود در فیلد، کاراکتر + و سپس x را نوشته و سپس کلید اینتر را بفشاریم تا مقدار جدید محاسبه و در فیلد جایگزین شود.

با استفاده از دکمه‌ی Play موجود در ادیتور () می‌توان در هر زمان بازی را اجرا کرده و تغییرات صورت گرفته در بازی را مشاهده و تست کرد. انجام تغییرات در حین اجرای بازی نیز ممکن است. اما ذکر این نکته بسیار ضروی است که:

تغییرات داده شده در بازی در حالت اجرا (playmode) ذخیره نمی‌شوند

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

ادیتور یونیتی برای اخطار چنین موضوعی به توسعه‌دهنده در حالت playmode تغییر رنگ داده و کمی تیره‌تر می‌شود. رنگ ادیتور در حالت playmode از طریق پنجره‌ی Preferences (در منوی Edit > Preferences) و قسمت Colors و سپس Playmode tint قابل تغییر است.

Prefab


در روند طراحی بازی ممکن است به بیشتر از یک نمونه از گیم‌آبجکتی خاص احتیاج داشته باشیم. برای مثال در یک مرحله از یک بازی پلتفرمر تعداد زیادی سکه وجود دارد که از نظر ساختاری هیچ تفاوتی با هم ندارند. در این حالت ایجاد گیم‌آبجکت به ازای هر سکه و افزودن دستی کامپوننت‌ها به تک تک آن‌ها بسیار دشوار و زمان‌بر است.

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

نکته‌ی بسیار مهم نمونه‌های ساخته شده از روی یک prefab از هم مستقل بوده و با تغییر پراپرتی‌های یک نمونه سایر نمونه‌ها تغییر نمی‌کنند.

برای تبدیل یک گیم‌آبجکت به prefab، نام آن را از پنجره‌ی Hierarchy بر روی فولدر موردنظر در پنجره‌ی Project با ماوس drag and drop می‌کنیم. در این حالت یک asset با فرمت prefab در پروژه ایجاد می‌شود که گیم‌آبجکت را در خود ذخیره کرده است. بنابراین با حذف گیم‌آبجکت فوق از صحنه (پس از تبدیل آن به prefab) اطلاعات مربوط به آن از بین نرفته و امکان فراخوانی مجدد آن با drag کردن فایل prefab به درون نمای صحنه امکان‌پذیر است. این فایل‌ها به صورت قراردادی در پروژه در فولدری به نام Prefabs نگهداری می‌شوند.

نکته نام prefabها در پنجره‌ی Hierarchy با رنگ آبی از گیم‌آبجکت‌های معمولی متمایز می‌شود:

با کلیک بر روی فایل prefab ذر پنجره‌ی Project امکان مشاهده و تغییر کامپوننت‌ها و پراپرتی‌های آن در پنجره‌ی Inspector (مثل یک گیم‌آبجکت عادی) وجود خواهد داشت. در این حالت این تغییرات بر روی تمام نمونه‌های آن prefab در صحنه نیز اعمال می‌شوند. اما همان‌طور که در بالا اشاره شد با ایجاد تغییر در یک نمونه‌ی ساخته شده از روی prefab این اتفاق رخ نخواهد داد. در صورت تغییر متسقل پراپرتی یک نمونه، آن پراپرتی به صورت bold درآمده تا بیانگر تفاوت مقدار پراپرتی نمونه با مقدار پراپرتی prefab باشد:

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

  • دکمه‌ی Select: فایل prefab مربوط به نمونه را در پنجره‌ی Project به حالت انتخاب درمی‌آورد.
  • دکمه‌ی Revert: تغییرات داده شده در پراپرتی‌های نمونه را به مقادیر اصلی آن‌ها (در prefab) بازگردانی می‌کند.
  • دکمه‌ی Apply: تغییرات داده شده در پراپرتی‌های نمونه را بر روی prefab اصلی (و بالتبع سایر نمونه‌ها) اعمال می‌کند.


قفل کردن پنجره‌ی Inspector


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

در این حالت امکان فراخوانی یک پنجره‌ی Inspector جدید در کنار پنجره‌ی قفل شده وجود دارد. برای این کار بر روی سربرگ پنجره راست کلیک کرده و از منوی باز شده گزینه‌ی Add Tab و سپس Inspector را انتخاب می‌کنیم.

مرحله‌ی ششم: ذخیره‌ی صحنه


در آخرین مرحله و پس از انجام طراحی بازی، برای ذخیره‌ی تغییرات داده شده صحنه را (از طریق منوی File > Save Scene و یا کلیدهای Ctrl+S) ذخیره می‌کنیم.


منبع:
unitycorn.ir