آماده‌سازی یونیتی برای استفاده از گیت

آماده‌سازی پروژه یونیتی برای گیت
آماده‌سازی پروژه یونیتی برای گیت

معمولا استودیو‌های بازی‌سازی در تیم خود چندین توسعه‌دهنده دارند و برای ایجاد هماهنگی بیشتر بین آنها نیاز به ابزارهای مختلفی دارند. یکی از مهمترین آنها ابزاری برای مدیریت تغییرات در کد و فایل‌های پروژه است. به این ابزار Version Control System یا به اختصار VCS گفته میشه. ما در اردیبهشت‌استودیو از گیت که محبوب‌ترین ابزارِ VCS هست، استفاده می‌کنیم که به صورت منبع باز و برای سیستم عامل‌های مختلف در اختیار عموم قرار گرفته است.

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




پیکربندی یونیتی

در ابتدا باید نحوه ذخیره‌سازی فایل‌ها در یونیتی رو مشخص کنیم تا در آینده بتونیم تغییراتی که در فایل‌ها ایجاد شد رو به اصطلاح track کنیم. برای این کار پروژه خود رو باز کنید و به منوی زیر بروید:

Edit  >  Project Settings  >  Editor

حال تنظیمات زیر رو اعمال کنید:

پیکربندی یونیتی
پیکربندی یونیتی

با تنظیمات بالا فایل‌هایی نظیر unity، asset و prefab که توسط خود یونیتی ساخته می‌شوند به صورت yaml ذخیره می‌شوند که خوانایی نسبی به فایل‌ها میده و در آینده می‌توان تغییرات ایجاد شده در فایل رو مشاهده کرد.

ساخت فایل gitignore

وقتی پروژه‌ای رو در موتور یونیتی باز می‌کنیم، برنامه به طور خودکار کد‌ها رو کامپایل و فایل‌ها Resource کد میکنه تا بتونه خیلی سریع و زنده تغییرات بازی رو نمایش بده. این فایل‌ها هم حجم خیلی زیادی دارند و هم نیازی به ذخیره (commit) کردن نداره. برای همین موضوع باید از فایل‌هایی که خودکار توسط موتور یا سیستم عامل ساخته میشن چشم پوشی کرد.

برای این منظور در پوشه اصلی پروژه یه فایل به نام زیر ایجاد کنید:

.gitignore

به کاراکتر نقطه قبل از اسم حتما توجه کنید. حال محتویات زیر رو در فایل کپی کنید:

https://gist.github.com/masudafsar/bbf28daf8f13e03b38641fed4e109486

حالا کافیه terminal یا git bash خودتون رو باز کنید و در مسیر پروژه دستور git init رو بزنید و وارد دنیای گیت بشید.

آماده‌سازی گیت
آماده‌سازی گیت

قدم آخر

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