۲۰ نکته کلیدی برای کار با انجین یونیتی

1
2057

در این پست قصد داریم شما را با ۲۵ نکته کاربردی و مهم در انجین یونیتی اشنا کنیم اما قبل از ان باید به موارد زیر دقت کنید:

  • این نکات بر روی هر پروژه ای با هر گستره ای قابل اجرا و پیاده سازی نیست
  • بعضی از نکات ممکن است با یکپارچی و وحدت پروژه در تضاد باشد

نکات روند پیاده سازی

  • هر یک از اعضای تیم باید یک نسخه کپی از پروژه را برای تست در اختیار داشته باشند ،اگر شما در حال استفاده از سیستم کنترل ورژن هستید پس از اعمال تغییرات شما باید پروژه را تمیز کنید و یک تست از ان بگیرید. پس از تمیز کردن پروژه هیچ کس نباید هیچ تغییر اضافه ای به نسخه های تمیز شده پروژه به وجود بیاورد.
  • یک ابزار طراحی مرحله خارج از انجین در نظر بگیرید. ادیتور طراحی مرحله یونیتی کامل نیست به عنوان مثال ما از ابزار TuDee برای طراحی مراحل یک بازی سه بعدی تایل بیس استفاده کردیم که از مزایای استفاده از ان در طراحی مرحله در این بازی، ابزار های عالی ان در زمینه کاشی ها بود(تکان دادن گریدها، چرخش چندتایی کاشی ها، دید دو بعدی ، انتخاب سریع تایل).
  • به جای ذخیره مراحل در صفحنه ها(scenes) ان ها را در xml ذخیره کنید، این یک تکنیک فوق العاده و عالی است که مزایای ان شامل موارد زیر می شود

نیازی به تنظیم مجدد هر صحنه نیست

پروسه بارگیری سریع تر انجام میگیرد (به شرطی که ابجکت ها بین صحنه ها اشتراکی باشند)

ادغام صحنه ها اسان تر می شود (حتی با وجود سیستم صحنه های جدید یونیتی که بر پایه ی متن هستند اغلب داده های زیادی وجود دارند که از هیچ راهی قابل ادغام نیستند)

رد گیری داده های بین هر مرحله اسان تر است

شما همچنان میتوانید از ادیتور طراحی مرحله خود یونیتی استفاده کنید که در این صورت شما نیاز به نوشتن کد هایی برای سریالایز و دیسریالایز داده هایتان و بارگیری یک مرحله در هم ادیتور و هم در زمان اجرا و ذخیره مراحل از ادیتور دارید البته ممکن است به شناسه سیستم میمیک(mimic) یونیتی برای نگهداری از مرجع های اشیا نیاز داشته باشید.

مدیریت صحنه ها

  • ابجکت های خالی بازی را به عنوان فولدر صحنه ها استفاده کنید ، با دقت صحنه های بازی خود را مدیریت و سامان دهی کنید تا بتوانید به اسانی و به سرعت به انها دسترسی داشته باشید
  • پری فب ها و ابجکت های خالی بازی را در موقعیت ۰,۰,۰ قرار دهید ، اگر یک ابجکت قرار نیست تبدیل به چیزی شود یا حرکتی انجام دهد پس ان را در موقعیت مبدا قرار دهید، با این روش خطر کمتری برای برخوردن به مشکل فضای دنیای بازی و مکان ها به وجود می اید و همچنین کد ها ساده تر می شوند.
  • بازی را از هر صحنه مجزا اجرا کنید ، با این کار به شکل چشمگیری از زمان تست کاسته خواهد شد

طراحی کلاس ها

  • منطق بازی را از اینترفیس جدا کنید ، در الگوی mvc این یک ضرورت است
  • از رشته ها به جز هنگام نمایش متن استفاده نکنید ، به طور خاص از رشته ها برای شناسایی ابجکت ها و پریفب و غیره استفاده نکنید که متاسفانه یک مورد استثنای ان در انیمیشن ها است که به طور کلی توسط رشته نامشان فرخوانی می شوند.

متن ها

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

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

تست و دیباگ

دیباگر یونیتی

  • یک لوگر گرافیکی برای دیباگ فیزیک ، انیمیشن و هوش مصنوعی تعریف کنید این کار میتواند فرایند دیباگ را به شکل قابل ملاحظه ای تسریع کند.
  • یک لوگر html پیاده سازی کنید ، در بعضی موارد که عملیات دیباگ بسیار پیچیده و زمان بر است استفاده از این روش میتواند مفید باشد ، یک صفحه لوگر میتواند شامل کد های رنگی شده ، ویو های متفاوت و اسکرین شات های متعددی باشد .
  • سیستم شمارشگر fps خود را بسازید. بله همان طور که ممکن است بدانید هیچ کس نمیداند که شمارشگر fps یونیتی دقیقا چه چیزی را اندازه میگیرد، اما هر چه که هست نرخ فریم ها نیست ، پیاده سازی سیستم fps خودتان میتواند کار شما را برای بازرسی بصری از بازی و اجرای ان بر روی دیوایز های مختلف اسان کند.
  • کلید های میانبری برای گرفتن اسکرین شات تعریف کنید ، بسیاری از باگ ها بصری هستند و وقتی که بتوان از انها عکس گرفت کار گزارش انها بسیار اسانتر خواهد بود، یک سیستم اسکرین شات ایده ال چیزی است که اسکرین شات ها را به صورت خودکار در خارج از فولدر پروژه ذخیره کند(البته این کار باعث می شود اعضای تیم به صورت تصادفی انها را در سیستم کنترل ورژن وارد نکنند) همچنین اسکرین شات های قبلی را بازنویسی نکند.
  • کلید های میانبری برای ذخیره مشخصات و متغیر های بازیکن و دنیای بازی تعریف کنید ، با این کار میتوان به سادگی موقعیت باگ پیش امده را در دنیای بازی شناسایی کرد.
  • تنظیماتی برای دیباگ اسان تر بازی توسط تستر ها فراهم کنید به عنوان مثال :باز کردن همه ایتم ها،غیرفعال کردن دشمنان ، غیرفعال کردن رابط کاربری گرافیکی،مخفی کردن بازیکن،غیرفعال کردن گیم پلی و یا هوش مصنوعی.
  • یک صحنه بازی را با تمام اجزا و المان هایش تست کنید ، برای نمونه تست و دیباگ یک صحنه (secene) با تمام دشمنان و تمام ابجکت هایی که بازیکن با ان تعامل دارد و غیره اسان تر است و زمان کوتاه تری برای تست کارکرد نیاز دارد.

مستند سازی

  • تنظیمات اعمال شده را مستند کنید ، بیشتر بخش های مستند سازی باید در کد باشد اما بعضی چیزها باید خارج از کد مستند شوند وارد کردن دیزاینر ها داخل کد کاری بیهوده و زمان بر است در حالی که مستند سازی تنظیمات اولیه و متغیر های اصلی باعث صرفه جویی در وقت و بهبود کارایی خواهد شد ،برای انتخاب یک ابزار مستندسازی مناسب میتوانید به این مقاله مراجعه کنید به طور کلی مستندات باید شامل موارد زیر باشند:

استفاده های لایه ها(به عنوان مثال برای برخورد ها و توضیح این که دقیقا هر لایه مربوط به چیست)

توضیح برچسب های استفاده شده

عمق رابط کاربری گرافیکی برای لایه ها(و توضیح اینکه چه چیزی بروی چه چیزی قراردارد)

تنظیمات صحنه

اولویت ها و تعاریف اصطلاحات استفاده شده

ساختار پریفب ها

لایه های انیمیشن

  • یک نام گذاری مستند شده قراردادی برای ابجکت ها و ساختار فولدر ها استفاده کنید ، در نظر گرفتن یک نام گذاری ساختار یافته باعث اسان تر شدن پیدا کردن چیزها و این که ان چیزها دقیقا چه هستند می شود.

بهینه سازی

  • تا جایی که ممکن است از تکسچر پیج های اطلس استفاده کنید ، این امر نه تنها بر روی بهینه سازی و کارایی پروژه تاثیر دارد بلکه میتوان از ان برای سامان دادن به منابع و متریال های استفاده شده به کار برد

تکسچر اطلس

Rating: 4.5/5. From 4 votes.
Please wait...

1 نظر

  1. سلامم من میخوام بازی بسازم تو داخل یونیتی چچوری بازی بسازم تروخدا کمکم کنید

    Rating: 5.0/5. From 1 vote.
    Please wait...

پاسخ دهید

لطفا نظر خود را وارد کنید
لطفا نام خود را اینجا وارد کنید