no-img
سامنتا

آموزش ساخت بازی دو بعدی (جلسه ی ششم)


سامنتا
دانلودهای ویژه
اطلاعیه های سایت

ادامه مطلب

آموزش ساخت بازی دو بعدی (جلسه ی ششم)
zip
آذر ۱۱, ۱۳۹۵

آموزش ساخت بازی دو بعدی (جلسه ی ششم)


برای دیدن جزئیات تمام جلسه های این دوره اینجا کلیک کنید .

آموزش Particles در یونیتی 

بعد از شش جلسه بازی سازی وقت این رسیده است که کمی با افکت های ریز بازی کار کنیم و بازی را زیباتر کنیم جای دارد اینجا مبحث Particles  را آموزش بدهیم و باهم کار کنیم 

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

یونیتی یک سیستم قدرتمندی در اختیار ما میگذارد تا ازاین قابلیت زیبا استفاده کنیم 

بیایید شروع کنیم 

Prefab  انفجار 

ما میخواهیم شکل انفجاری را بسازیم که وقتی player یا کاراکتر های دشمن نابود میشوند به اجرا در بیاید 

برای این کار باید : 

۱ particle system مربوط به انفجار را بسازیم 

۲ زمانی که کاراکتر نابود میشود انرا به اجرا در بیاوریم

یک انفجار معمولا از دو چیز تشکیل میشود : آتش و دود .

Particle دود در یونیتی 

یک Particle System جدید درست کنید (“Game Object” -> “Create Other” -> “Particle System”).

روی شی جدید که ساخته اید اگر دوبار کلیک بکنید درون صحنه درست در مقابل چشمان شما نمایش داده خواهد شد یا همان کار move to view را انجام میدهد این کار باعث میشود اشیایی که در عمق یا بیرون از کادر دید شما قرار دارند و ممکن هست دیدن انها برای شما مشکل باشه به جلوی چشمان شما بیاییند و راحت تر بتوانید انها را پیدا کنید 

با زوم کردن روی Particle System جدید که ساخته اید شما یک روند تکرار شونده ی جرقه های سفید رنگ مشاهده میکنید 

آموزش Particle System در یونیتی

خب ما از sprite یا تصویر زیر برای ایجاد دود استفاده خواهیم کرد 

ایجاد particle system در یونیتی  

تصویر بالا را در پوشه ی Textures درون پروژه ی خود ببرید Texture Type این تصویر را از inspector به Texture تغییر بدهید و Alpha Is Transparent را تیک بزنید 

آموزش پارتیکل سیستم در یونیتی 

اضافه کردن texture که ایجاد کردیم به particle system بازی :

texture را به درون particle system از طریق inspector درگ کنید یا میتوانید روی particle system درون پنجره ی Hierarchy هم درگ کنید 

به inspector مربوط به particle system بروید و shader را به Particles” -> “Alpha Blended تغییر دهید تصویر زیر را ببینید

آموزش particle system در یونیتی 

برای بهبود کردن حالت دود باید تنظیماتی را برای particle system اعمال کنیم 

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

دسته بندینام پارامترارزش
GeneralDuration۱
GeneralMax Particles۱۵
GeneralStart Lifetime۱
GeneralStart ColorGray
GeneralStart Speed۳
GeneralStart Size۲
EmissionBursts۰:۱۵
ShapeShapeSphere
Color Over LifetimeColorSee below (N°1)
Size Over LifetimeSizeSee below (N°2)

 

N°1 — Color Over lifetime

در انتهای نوار آلفایی جهت نمایش محو شدن ایجاد کنید 

ایجاد محو شدگی در یونیتی  

N°2 — Size Over lifetime

یک منحنی کاهش انتخاب کنید 

منحنی کاهنده در یونیتی  

در نهایت باید inspector شما به شکل زیر باشد 

ساخت particle System در Unity 

شما میتوانید روی تنظیمات بیشتر کار کنید و تنظیمات را تفییر دهید و نتیجه را مشاهده کنید تا بیشتر دستتان راه بیوفتد 

نتیجه باید به شکل تصویر زیر باشد 

افکت دود در یونیتی بازی سازی  

درسته چیزی که ساخته ایم خیلی عالی نیست ولی ساده بودن روش استفاده از particle ها را به ما نشون میده 

حال particle که ساختیم را به شکل یک prefab ذخیره کنید . میتوانید دسته بندی جدیدی برای particle های خود درون Prefabs/Particles بسازید و نام این prefab را SmokeEffect بگذارید.

particle آتش در یونیتی 

ساخت particle اتش هم تفاوت چندانی با ساخت particle دود ندارد 

 particle system جدید همانطور که بالا ساختید بسازید . 

material پیشفرض را برای آتش استفاده کتید (Renderer/Material یا Default-Particle)

باز هم مثل قبل جدول زیر را پیشنهاد میکنیم 

دسته بندیعنوان متغیرمقدار متغیر
GeneralLoopingfalse
GeneralDuration۱
GeneralMax Particles۱۰
GeneralStart Lifetime۱
GeneralStart Speed۰٫۵
GeneralStart Size۲
EmissionBursts۰ : ۱۰
ShapeShapeBox
Color Over LifetimeColorSee below (N°1)

N°1 — Color Over Lifetime

گرادیانت مشابه رنگ آتش از زرد تا نارنجی مانند تصویر زیر درست کنید

particle آتش در یونیتی

particle آتش در یونیتی

چیزی که باید ببینید

افکت آتش در یونیتی

افکت آتش در یونیتی

بصورت prefab ذخیره کنید و نامش را FireEffect بگذارید 

حالا که prefab ها بصورت آماده ساخته شده ما باید شروع کنیم و آنها را داخل اسکریپت ها استفاده کنیم 

 

اسکریپت کمک کننده 

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

به هر حال ، شما باید به یاد داشته باشید زمانی که به آنها نیازی نیست باید پاک شوند 

بنابراین ما توسط اسکریپتی مخلوطی از هر دو prefab برای دود و آتش تولید خواهیم کرد 

اسکریپت جدیدی به نام SpecialEffectsHelper بسازید و محتویات زیر را کپی کنید :

using UnityEngine;
/// <summary>
/// Creating instance of particles from code with no effort
/// </summary>
public class SpecialEffectsHelper : MonoBehaviour
{ /// <summary> /// Singleton /// </summary> public static SpecialEffectsHelper Instance; public ParticleSystem smokeEffect; public ParticleSystem fireEffect; void Awake() { // Register the singleton if (Instance != null) { Debug.LogError("Multiple instances of SpecialEffectsHelper!"); } Instance = this; } /// <summary> /// Create an explosion at the given location /// </summary> /// <param name="position"></param> public void Explosion(Vector3 position) { // Smoke on the water instantiate(smokeEffect, position); // Tu tu tu, tu tu tudu // Fire in the sky instantiate(fireEffect, position); } /// <summary> /// Instantiate a Particle system from prefab /// </summary> /// <param name="prefab"></param> /// <returns></returns> private ParticleSystem instantiate(ParticleSystem prefab, Vector3 position) { ParticleSystem newParticleSystem = Instantiate( prefab, position, Quaternion.identity ) as ParticleSystem; // Make sure it will be destroyed Destroy( newParticleSystem.gameObject, newParticleSystem.startLifetime ); return newParticleSystem; }
}

 

 

یک singleton  ساختیم که شما میتوانید از هرجایی به ان دسترسی داشته باشید کافیست SpecialEffectsHelper.Instance را فراخوانی کنید 

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

  1.  اسکریپت جدیدی را که تولید کردید به شی Scripts در Hierarchy اختصاص دهید تا روی بازی تاثیر بگذارد 
  2. به inspector آن بروید و فیلد های مربوط به prefab ها را تنظیم کنید 

filling_script

منفجر کردن یک چیز : 

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

HealthScript را باز کنید ، ما باید زمان نابود شدن شی را پیدا کنیم و دقیقا همانجا افکت انفجاری که درست کردیم را به اجرا در بیاوریم 

ما فقط باید خط زیر را به آنجا اضافه کنیم 

SpecialEffectsHelper.Instance.Explosion(transform.position);

متد Damage  را در اسکریپت HealthScript پیدا کنید : 

 public Damage(int damageCount) { // ... if (hp <= 0) { // 'Splosion! SpecialEffectsHelper.Instance.Explosion(transform.position); // Dead! Destroy(gameObject); } // ... }

بازی را start کنید به طرف دشمن ها شلیک کنید و بعد اجازه دهید player بمیرد 

افکت انفجار در یونیتی

افکت انفجار در یونیتی

کلیات ساخت particle system در یونیتی را یاد گرفتید شما میتوانید با استعداد و تلاش خود بهترین افکت ها را توسط این ابزار فوق العاده ی یونییتی بسازید 

 

خسته نباشید

لطفا سایت سامنتا را با دوستان خود به اشتراک بگذارید و در نهایت برای شما آرزوی موفقیت دارم 

با احترام

عباس نیکزاد




درباره نویسنده

تیم سامنتا 75 نوشته در سامنتا دارد . مشاهده تمام نوشته های

دیدگاه ها


پاسخ دهید

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