خب در این قسمت قراره آموزش ببینید که چطور به هوش مصنوعی قبلی کدی رو اضافه کنیم که اگر هدف رو دید دنبال کنه
و چون این مبحث یه مقدار سنگین هست نسبت به قسمت قبلی برای همین بخش تیر زدن رو در این قسمت آموزش نمی دم
اینم کد جدید :
توضیحات :
MaxSee یه متغییر از نوع اعشاری برای حداکثر فاصله دید
Saw یه متغییر از نوع bool که اگر هدف رو دیدیم این متغییر true میشه(بوسیله کد هایی که نوشته شده)
شرط ها رو هم که قبلا توضیح داده شده و فقط یه شرط برای دیدن اضافه شد ( || یعنی (یا) و && یعنی (و) )
Ray r بوسیله این کد یه Ray ساختیم و transform.position یعنی موقعیت فعلی رو برای شروعش دادیم و جهتش رو رو به جلو گزاشتیم (transform.forward)
-زیاد وارد بحث RaycastHit , Ray نمیشم چون خیلی چیز رو باید توضیح بدم در اون صورت و مقاله در موردش توی همین وبلاگ وجود داره میتونید استفاده کنید.
Physics.Raycast با این کد که سه ورودی میگیره ( در حالت عادی ) اولیش اشعه Ray هست و دومیش همون RaycastHit هست و سومیش هم حداکثر فاصله و بعدش اگر به جسمی برخورد کرده مقدار true رو بر میگردونه و اگر برخورد نکرد false رو بر میگردونه و ما نیز این مقدار رو که بر میگردونه رو داخل متغییر Saw میریزیم
در آموزش بعد یاد خواهیم گرفت :
با نزدیک شدن به هدف به آن تیر بزنیم
با دور شدن از هدف بایستیم
خب در این بخش قراره یاد بگیرید که چطور به هوش مصنوعی قبلی یه سیستم اضافه کنیم
که اگر نزدیک هدف شد متوقف بشه و برعکس :
توضیحات :
همونطور که در کد بالا میبینید کد nav.SetDestination قبلا توی Start بود ولی الان در هر فریم موقییت هدف رو دنبال می کنه و اگر شما کد قبلی رو اجرا کرده باشید و این کد رو هم اجرا کنید متوجه فرقشون میشید
در کد قبل اگر هدف فرار میکرد ما دنبالش نمی رفتیم ولی در این کد و با این کار هدف دنبال میشه
متغییر های MinDistance , Speed اضافه شدن که اولی برای سرعت و دومی برای حداقل فاصله است.
Vector3.Distance
این تابع یا کد دو ورودی (آرگومان) داره که اولیش = مختصات خودمون و دومیش = مختصات هدف است و به ما فاصله بین این دو رو به صورت float میده
nav.speed
این تابع سرعت رو تنظیم میکنه و همونطور که میبیند ما شرط گزاشتیم که اگر فاصله به حداقل رسید سرعت 0 بشه و اگر فاصله تغییر کرد و حداقل نبود سرعت هم تغییر کنه و برابر Speed (متغییری که در بالا تعریف شده ) بشه
در آموزش بعد یاد خواهیم گرفت :
با دیدن هدف آن را دنبال کنیم
به هدف رسیدیم بهش شلیک کنیم
منبع : gameover.blog.ir