ساخت مازل فلش muzzle flash یا جرقه سر اسلحه یا خون روی نقطه ی تیر خورده در یونیتی
چطوری یه گیم ابجکت رو جوری تو کد بسازمش که زیر مجموعه ی یک شی بشه
مثلا این ابجکت f نقش افکت اتیش اسلحه رو داره
Var pref_fire:GameObject;//------------pref_fire moteghayyeri hast ke az voroodi atish ro midim behesh
f = Instantiate(pref_fire,transform.position,Quaternion.identity);
ولی وقتی که به وجود میاد ترنسفرمش زیر مجموعه ی اسلحه نیست.اول یک گیم ابجکت تهی یا empty بساز سپس بکش بنداز روی اسلحه بعدش روی هر موقعیتی که می خوای بذار . این شد از لحاظ ویژوال.
حالا برای اینکه همینو از لحاظ کد بهش نیگا کنی دیدت باز میشه. در position این شی empty پریفب آتش یا پاتیکل یا هرچیزی دوست داری رو Instantiate کن. ضمنا یک زمان هم در نظر بگیر که پس از این دوره ی زمانی خون نابود بشه . برای این کار یک اسکریپت به خون بده و توی Start اینو بذار مثلا بعد از 5 واحد زمانی از بین بره :
void Start(){ Destroy (this, 5.0f); }
سوال :
من میخوام fire وقتی اینستنتیت میشه زیر مجموعه ی گان باشه پاکم نشه ازش روش بمونه. چطوری یه شی و جوری تو کد بسازمش که زیر مجموعه ی یک شی بشه.مشکل من اینه که وقتی که آتیش به وجود میاد ترنسفرمش زیر مجموعه ی اسلحه نیست.
پاسخ:
ابتدا یک متغیر از نوع GameObject به صورت public تعریف کنید که بشه از ورودی ، پریفب آتش رو در کادر hierarchy بهش نسبت داد یا مثل مازل فلش یا پریفب تیر یا هرچیز دیگه ای.
سپس کد Istantiate رو در رویداد کلیک ماوس بنویسید.کد رو به یک گیم ابجکت empty میشه داد که موقعیت و جهت حرکت تیر رو تعیین کنه و خودمون باید Rotation و Position رو تنظیم کنیم.البته به جای S.Transform و S.Rotation بهتره this بدیم. چون this به شی جاری اشاره می کنه یعنی گیم ابجکت empty .(اما S به خود گیم ابجکتی که از ورودی وارد کردیم.ما به جهت و موقعیت اون کاری نداریم و باید ورودی رو روی نقطه ی دلخواه تنظیم کنیم)
public input_GameObject_NokAslahe_Spawn:GameObject; void Update(){ this.Position= input_GameObject_NokAslahe_Spawn.Position; }
توضیحات اضافی:
ساخت پریفب رو که بلدید؟ بلد نیستید؟ پریفب یعنی یه ابجکت بساز و رنگش کن و تکستچر بده و هر بلایی دوست داری سرش بیار و هر ابجکتی دوست داشتی بکش روش رها کن مثلا یه لوستر بساز با چند تا لامپ و هر لامپش متریال خودشو داره یکی سبز و الی آخر.... یا یه ماشین با چهار چرخ و درب و شیشه و غیره بسازید و اسکریپت های لازم رو بهش ربط بدید . بعدش توی کادر پروژه راست کلیک و new prefab و سپس اون ماشین یا لوستر رو از توی کارد اجزای صحنه(hierarchy) بکشید روی این پریفب توی کار پروژه رها کنید تا یک پریفب ازش ساخته بشه.بعدش اون ماشین رو از تو صحنه حذف کنید و سپس هر جا توی بازی نیاز بود می تونید چند نمونه از این پیفب تیر یا لوستر یا خون یا ماشین یا هرچیز دیگه ای هست رو ازش نمونه سازی یا کپی یا Instantiate کنید.
دوستان هر سوالی از یونیتی دارید بپرسید بلد بودم پاسخ می دم انشاءا... .