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

ساخت بازی

نظرسنجی: آموزش چطوره ؟
عالی
خیلی خوب
خوب
متوسط
ضعیف
[نمایش نتایج]
 
توضیح: این یک نظرسنجی عمومی‌است. کاربران می‌توانند گزینه‌ی انتخابی شما را مشاهده کنند.
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
کلمات کلیدی
اموزش ساخت هوش مصنوعی در یونیتی قسمت 2

اموزش ساخت هوش مصنوعی در یونیتی قسمت 2
#1
سلام . شروع به ساخت هوش مصنوعی مون میکنیم . در ضمن کد این هوش مصنوعی کلا با قبلی فرق داره . پس کد قبلی رو پاک کنید .

توی این کد :

1 - دشمن فقط در صورتی به دنبال پلیر میاد که اونو ببینه .

فقط در صورتی دشمن رو میبینه که جلوی اون باشه و در زاویه ی دید اون قرار بگیره .

کدمون اینجوریه :

کد:
var direction : Vector3;
var activated : boolean;
var player : GameObject;
var agent : NavMeshAgent;

function Awake()
{
agent = gameObject.GetComponent(NavMeshAgent);
}

function Update()
{
var hit : RaycastHit;
direction = player.transform.position - transform.position;

if(Vector3.Angle(direction,transform.forward)<60)
{
if(Physics.Raycast(transform.position,direction,hit,1000))
{
if(hit.collider.tag=="Player")
{
print("dide shod");
activated = true;
}
}
}
if(activated==true)
{
agent.SetDestination(player.transform.position);
}
}
ابتدا محیط رو در قسمت Navigation بیک کنید و به ابجکت دشمن NavMeshAgent بدید و پلیر رو با Player تگ کنید .

توی این کد اول یه Vector3 و boolean و GameObject و NavMeshAgent تعریف کردیم که به ترتیب جهت ray ما ، فعال بودن یا فعال نبودن دیده شدن بازیکن ، ابجکت بازیکن و سیستم Navigation دشمن هستند .

بعدش اومدیم direction رو تعریف کردیم و یه RaycastHit هم ساختیم که برای تشخیص برخورد ضروریه . بعدش اومدیم گفتیم که اگه زاویه ی جهت با جلوی ابجکت دشمن کمتر از 60 شد ، اگر در فاصله ی 1000 یا کمتر دشمن با چیزی برخورد کرد و اگر تگ جسم برخورد کننده Player بود بنویسه دیده شد و به دنبالش بره . برای امتحان کافیه 2 تا Cube بسازید که یکی پلیر باشه و یکی دشمن . ابجکت پلیر رو بعد از تنظیماتی که در بالا برای دشمن گفتم پشت دشمن قرار بدید و بعد از شروع بازی پلیر رو روبه جلو بیارید تا حدی که به جلوی دشمن برسه . البته خیلی نباید زاویه داشته باشن . بعد نتیجه ی کارو ببینید .
پاسخ
 سپاس شده توسط محمدمهدی علیجانی ، تور110 ، moien1 ، Hamed-razor ، BlacksuN137 ، امیرحسین گیمر ، taha_mct ، mzr ، meysam0501 ، sajjad3011 ، avesta ، aminblog76 ، B3Hi13
#2
خوشحالیم که ادامه دادی
در حال یادگیری...
پاسخ
#3
ممنون . بقیه هم لطفا نظر بدن .
پاسخ
 سپاس شده توسط moien1 ، امیرحسین گیمر
#4
کد:
if(Vector3.Angle(direction,transform.forward)<60)

میشه این قسمت رو یکم بیشتر توضیح بدی ؟

"Vector3.Angle" ؟؟!
پاسخ
#5
زاویه بین دو نقطه رو بدست میاره !
resim
پاسخ
 سپاس شده توسط sajjad3011
#6
بقیه هم لطفا نظر بدن .
پاسخ
 سپاس شده توسط امیرحسین گیمر ، h00man
#7
ببین اینو از رو تجربه میگم و امیدوارم بهت بر نخوره ، به خصوص توکه از کپی شدنه کدهات بدت میاد بهتره فقط الگوریتمو توضیح بدی و کد نویسی رو به عهده خود طرف بزاری ، اینجوری هم بهتر یادگیری میشه هم کدا دزدیده نمیشه !
resim
پاسخ
#8
چرا بهم بر بخوره ؟ خیلی هم ممنون که همچین چیزی رو گفتید .
پاسخ
 سپاس شده توسط امیرحسین گیمر ، sajjad3011
#9
تشکر ها الان 4 تا هست . 6 تا بشه قسمت 3 رو هم میذارم که در صورت دیده شدن به پلیر تیراندازی میشه .
پاسخ
 سپاس شده توسط امیرحسین گیمر ، mohamada365
#10
شما با کد js آوردی. من با سیشارپ جای دیگه یاد میدم.ادامه بده. درود به تو.
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط meysam0501




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