درود مهمان گرامی! ثبت نام

امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
سوال:برخورد پلیر با دشمن
#1
سلام دوستان یه سوالی داشتم

حتما تابحال همتون بازی معروف قارچ خور رو بازی کردید

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

این چطوری پیاده سازی میشه؟

حالا یه نوع دیگش

اگه من بخوام که پلیر از جلو به دشمن بخوره ببازه ولی از پشت بهش بخوره و دشمن نابود شه اینو چطوری پیاده سازی کنم؟

برای جلوش دیگه نمیخواد بگین جواب سوال قبلی رو برعکس میکنمteeth

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

بازی ها و نمونه کارهای من:


بازی قلب پرنده
پاسخ
#2
یه،collider برای دشمن تعریف کنید و تیک is trigger رو بزنید
و اونو خیلی کوچیک و باریک کنید و بالای سر دشمن قرار بدید. حالا توی کد تابع on trigger اگه اشتباه نکنم تعریف کنید که دشمن destroy بشه
همین کارو واسه بقیه جا ها هم میشه گذاشت
پاسخ
 سپاس شده توسط aliheadari
#3
Photo 
خب دوستان عزیز یه شکلی کشیدم که نشون بدم چی میخوام و قضیه چیه
سمت چپی پلیر سمت راستی دشمنش
resim

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

به گیم آبجکت جلویی کد دادم گه اگه پلیر واردش شه انیمیشن مرگش پخش شه و انیمیشن ضربه زدن دشمن پخش شه

به گیم آبجکت عقبی هم کد دادم که اگه پلیر واردش شه انیمیشن ضربه زدنش پخش شه و انیمیشن مرگ دشمن پخش شه و گیم آبجکت جلویی هم فالس شه

مشکل من اینجاست که:

وقتی پلیر از پشت به کلایدر عقبی دشمن وارد میشه بعدش گیم آبجکت جلویی اندازه نیم ثانیه ای دیر فالس میشه و پلیر بهش برخورد میکنه و خودشم میمیره!

این روش من غیر استاندارده درسته؟

شاید نه امروز... نه فردا... و نه روز دیگر... اما سرانجام همه چیز درست خواهد شد

بازی ها و نمونه کارهای من:


بازی قلب پرنده
پاسخ
#4
یه کالیدر که تریگر نباشه رو تعریف کن و بزار وسط دشمن تا مشکلی ایجاد نشه
پاسخ
 سپاس شده توسط aliheadari
#5
خب من میخوام پلیرم به سرعت ازش رد بشه اگه کلایدر بزارم که تریگر نباشه بهش گیر میکنه راه دیگه ای نیست؟
شاید نه امروز... نه فردا... و نه روز دیگر... اما سرانجام همه چیز درست خواهد شد

بازی ها و نمونه کارهای من:


بازی قلب پرنده
پاسخ
#6
میتونی اینکارو بکنی
یه دونه آبجکت دشمن مرده بساز بندازش قاطی باقالیا و هیچ کالیدری تعریف نکن براش
و تعریف کن به محص اینکه انیمیشنش تموم شد.destroy شه
حالا یه گیم آبجکت تعریف کن و مختصاتشو برابر مختصات دشمن بزار
براش تعریف کن اگه تو تریگر رفت دشمن اصلی destroy شه و دشمن در حال مرگ با مختصات گیم آبجکت خالی ساخته شه
فک کنم اینجوری اوکی شه
الان کامپیوتر دشتم نیست وگرنه تست میکردم بهت جواب کاملو میگفتم
پاسخ
 سپاس شده توسط aliheadari
#7
از لحاظ منطقی و از خودم می گم شاید درست باشه شایدم نه.
زیر player یک emptyObject بذار و بهش کالیدر بده و isTrigger رو طوری تعیین کن که توی برخورد مشکلی ایجاد نکنه.بعدش توی برخورد این emptyObject با چیزی که م خوای کد لازم رو بنویس(مثلا کد پرس شدن enemy )
پاسخ
 سپاس شده توسط aliheadari
#8
(13/6/1394، 06:15 عصر)sepehr1234 نوشته است: میتونی اینکارو بکنی
یه دونه آبجکت دشمن مرده بساز بندازش قاطی باقالیا و هیچ کالیدری تعریف نکن براش
و تعریف کن به محص اینکه انیمیشنش تموم شد.destroy شه
حالا یه گیم آبجکت تعریف کن و مختصاتشو برابر مختصات دشمن بزار
براش تعریف کن اگه تو تریگر رفت دشمن اصلی destroy شه و دشمن در حال مرگ با مختصات گیم آبجکت خالی ساخته شه
فک کنم اینجوری اوکی شه
الان کامپیوتر دشتم نیست وگرنه تست میکردم بهت جواب کاملو میگفتم
ممنونم دوست عزیز اینکارو میکنم ببینم جواب میده یا نهsmiley فقط خب بازی من واسه موبایله باید بهینه شه اینهمه destroy و ایجاد مجدد بازیو کند نمیکنه و بار پردازشی نداره؟


(13/6/1394، 10:18 عصر)sajjad3011 نوشته است: از لحاظ منطقی و از خودم می گم شاید درست باشه شایدم نه.
زیر player یک emptyObject بذار و بهش کالیدر بده و isTrigger رو طوری تعیین کن که توی برخورد مشکلی ایجاد نکنه.بعدش توی برخورد این emptyObject با چیزی که م خوای کد لازم رو بنویس(مثلا کد پرس شدن enemy )

خب براش میتونم از edgecollider استفاده کنم که هیچ برخوردی یا مشکلی ایجاد نکنه فقط...چرا زیرش؟خب من پشتش یه گیم آبجکت گذاتم و جلوش هم یکی و کاری رو که باهاشون کردم توضیح دادم...میشه واضح تر بگی دوست عزیز من متوجه نشدم؟smiley
شاید نه امروز... نه فردا... و نه روز دیگر... اما سرانجام همه چیز درست خواهد شد

بازی ها و نمونه کارهای من:


بازی قلب پرنده
پاسخ
#9
چرا زیرش؟ خوب مگه نمی خوای وقتی می پره روی دشمن،از زیر تشخیص بده ؟ پس باید empty object+collider جدا توی لایه ی دیگه ای بذاری دیگه. با این کار وقتی می پری روی حریف،برخورد از زیر یا همن پریدن روی حریف رو تشخیص می دیم دیگه
پاسخ
 سپاس شده توسط aliheadari
#10
Information 
(14/6/1394، 12:43 صبح)sajjad3011 نوشته است: چرا زیرش؟ خوب مگه نمی خوای وقتی می پره روی دشمن،از زیر تشخیص بده ؟ پس باید empty object+collider جدا توی لایه ی دیگه ای بذاری دیگه. با این کار وقتی می پری روی حریف،برخورد از زیر یا همن پریدن روی حریف رو تشخیص می دیم دیگه

آها ممنونم ازت دوست عزیزsmiley این حالا حل شد یه مشکل گنده ترsadیکم پیشرفتش کردم حالا توش گیر کردمsadاون بالا با عکس توضیحش دادم که مشکلم چیهsmiley
شاید نه امروز... نه فردا... و نه روز دیگر... اما سرانجام همه چیز درست خواهد شد

بازی ها و نمونه کارهای من:


بازی قلب پرنده
پاسخ
 سپاس شده توسط sajjad3011


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Information برخورد در یونیتی A.m 4 528 5/4/1397، 11:20 عصر
آخرین ارسال: aminblog76
  زمان برخورد کردن یک جسم به جسمی دیگر fahimi 1 319 29/4/1396، 02:25 عصر
آخرین ارسال: mamali me
Question مشکل در ساخت دشمن tmnttnmt 3 796 23/3/1395، 09:27 صبح
آخرین ارسال: Sinakhda
  فرو رفتن پلیر داخل کوه ها و ... AMIN9213 4 1,049 12/2/1395، 07:29 عصر
آخرین ارسال: AMIN9213
  مشکل در سرعت پلیر Ali-reza8448v2 4 1,131 10/9/1394، 05:24 عصر
آخرین ارسال: Ali-reza8448v2



کاربرانِ درحال بازدید از این موضوع: 1 مهمان