پریفب (Prefab) در یونیتی چیست ؟

اسفند 29, 1397     افسانه کریمی    

اموزش بازی سازی با موتور یونیتی

پریفب (Prefab) در یونیتی چیست ؟

تو این مقاله کوتاه قراره بفهمیم پریفب (Prefab) در یونیتی چیه و کجا کاربرد داره .

فرض کنین که میخوایم بازی مثل کلش اف کلانز بسازیم. تو بازی ما به برج های مراقبت احتیاج داریم .پس همچین چیزی میسازیم :

ایجاد پریفب از قلعه در یونیتی

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

ساخت یک Prefab

خب بیاین یک پریفب بسازیم .
این کار خیلی آسونه فقط کافیه شی که تو پنل سلسله مراتب (Hierachy) هست رو بکشین تو پنل پروژه . این شکلی :
ساخت پریفب در یونیتی
بعد از این میتونین پریفب رو داخل پروژه ببینین.
ایجاد پریفب در یونیتی
خب حالا میتونیم شی برج رو از بازیمون حذف کنیم . (از پنل هایراکی) . بنابراین دیگه تو دنیای بازی ما نیست .

بارگذاری یک پریفب در بازی

اگر قصد داریم یک پریفب رو لود کنیم ، دو راه داریم .
یک اینکه خودمون شی رو داخل بازی بکشیم و به هایراکی اضافه کنیم .
و راه دوم اینکه از کدنویسی و نوشتن Instantiate استفاده کنیم .
این یک نمونه کد هست که همون ابتدای بازی پریفب رو داخل بازی بارگذاری میکنه .

ما Instantiate رو داخل تابع start ساختیم . شما با توجه به نیازتون ممکنه در تابع اپدیت یا هرجای دیگه ای بنویسید .

تابع instantiate شکل های تعریف مختلفی داره مثلا :

ساخت شی از پریفب با تابع instantiate در یونیتی

این تمام حالاتی هست که میتونه داشته باشه . شیوه ای که ما برای تعریف استفاده کردیم رایجترین مدلشه .

اولین مقداری که به تابع داده میشه شی یا همون پریفبمونه .مورد بعدی مشخص میکنه شی که تو بازی قراره ساخته بشه کجا باشه ما نوشتیم transform.position یعنی جایی که شی *this* هست . و در نهایت مورد اخرچرخش شی رو مشخص میکنه quaternion.identity یعنی چرخش پیش فرضی داره.
یک شی عمومی به اسم pref ساختیم . حالا تنها کار اینه که از داخل اینسپکتور پریفب مورد نظر رو به کد بدیم . این شکلی :
ساخت پریفب در یونیتی
با شروع بازی میبینین که پریفبتون همون ابتدا تو بازی ساخته میشه.
به همین اسونی !

منبع : Noobtuts

دسته‌بندی‌ : بازی سازی

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Rating*