前言
在做ARPG游戲,我負(fù)責(zé)怪物的AI模塊牺弹,做了大概3個(gè)星期,有些功能實(shí)現(xiàn)了侥猬,有些模塊因?yàn)樘珡?fù)雜能力不夠放棄了很滿意例驹,不過(guò)確實(shí)從中學(xué)到了不少東西。
需要實(shí)現(xiàn)的功能
怪物從ObjectPool出現(xiàn)退唠,A*算法我也只是了解各原理鹃锈,暫定使用Unity自帶的Navigation組件導(dǎo)航。
遇到問題:對(duì)象池動(dòng)態(tài)加載后發(fā)現(xiàn)怪物無(wú)法自動(dòng)導(dǎo)航瞧预,最后放棄使用對(duì)象池屎债,使用instantiate生成仅政,有空的話要研究一下,下一次要使用對(duì)象池盆驹。
怪物遇到英雄要實(shí)現(xiàn)包圍算法圆丹,剛開始決定在英雄的身上加6個(gè)Vector3,將這6個(gè)points依次賦值給怪物,然后實(shí)現(xiàn)包圍效果躯喇。1.0
包圍1.0使用后發(fā)現(xiàn)跟英雄的耦合度太高辫封,決定要降低耦合度,將6個(gè)點(diǎn)改為實(shí)時(shí)判定廉丽,在怪物包圍方法上實(shí)時(shí)判定6個(gè)point倦微,再將6個(gè)點(diǎn)位置賦值給怪物。2.0
代碼寫出后發(fā)現(xiàn)這樣包圍效果不好正压,因?yàn)楣治锝咏⑿酆蠼?jīng)常會(huì)先判定6個(gè)點(diǎn)的位置欣福,經(jīng)常走到不是離他最近的位置,導(dǎo)致怪物如果跟隨英雄實(shí)時(shí)更新位置會(huì)看起來(lái)顯得十分怪異焦履,網(wǎng)上查了些攻略拓劝,貌似大神是用群聚法計(jì)算的,我水平有限嘉裤,占時(shí)決定將
6個(gè)點(diǎn)再次進(jìn)行判定郑临,然后尋找最近的點(diǎn),實(shí)現(xiàn)包圍效果价脾。3.0正在嘗試牧抵。
//文章尚未寫完,明天更新進(jìn)度侨把。犀变。。