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


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


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش ساخت صفحه لودینگ در یونیتی jelveh 0 199 20/3/1396، 09:13 صبح
آخرین ارسال: jelveh
  هوش مصنوعی حیوان 12222221 0 272 23/5/1395، 11:08 صبح
آخرین ارسال: 12222221
  اموزش فیزیک یونیتی armin 11 4,654 12/5/1395، 09:46 صبح
آخرین ارسال: rjm7979
  ساخت بازی با یونیتی برای اندروید masoodgiryaii 7 762 26/4/1395، 06:06 عصر
آخرین ارسال: sepehr1234
  دانلود یونیتی برای ساخت بازی اندروید mrstar 2 675 10/4/1395، 03:09 عصر
آخرین ارسال: jelveh



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