資源描述:
《Unity3D游戲開發(fā)之自動尋徑等.docx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Unity3D游戲開發(fā)之自動尋徑等自動尋徑指的就是點擊場景上的一個位置,角色就會自動尋路過去。中間可能會有很多的障礙物,角色會自動繞過障礙物,最終達到終點。?Navigation:定位,導航?首先先來實現(xiàn)巨魔自動尋徑的功能,先在視圖中創(chuàng)建地形和障礙物(障礙物可以用cube來代替),然后倒入巨魔?!竟放賹W習網(wǎng)】然后點擊window---Navigation,這樣在屬性欄的旁邊就會出現(xiàn)Navigation欄。然后設(shè)置各個物體的屬性:地面和障礙物:然后烘培尋路網(wǎng)格:巨魔:????最后給巨魔添加腳本,代碼如下:1.????NavMeshAgentag
2、ent;2.????voidStart(){3.????????agent=GetComponent();4.??????????????}5.6.????voidUpdate(){7.????????RaycastHithit;8.????????if(Input.GetMouseButtonDown(0)){9.????????????Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);10.????????????if(Physics.Raycas
3、t(ray,outhit)){11.????????????????agent.SetDestination(hit.point);12.????????????????????????????}13.????????????????????}14.???????????}還可以實現(xiàn)巨魔的走和跑,在代碼中添加:1.Animatoranim;2.voidStart(){3.???????anim=GetComponent();4.????}5.voidUpdate(){6.????????if(agent.remaining
4、Distance==0)??7.????????{??8.????????????AnimationToIdle();??9.????????}??10.????????else??11.????????{??12.????????????AnimationToWalk();??13.????????}??14.??????}15.publicvoidAnimationToIdle(){16.????????anim.SetFloat("idle",1F);17.????????anim.SetFloat("walk",0.0F);18.??
5、??????anim.SetFloat("run",0F);19.????}20.publicvoidAnimationToWalk(){21.????????anim.SetFloat("run",0.0F);22.????????anim.SetFloat("idle",0F);23.????????anim.SetFloat("walk",1.0F);24.????}25.}最后把腳本拖放到巨魔上。寵物跟隨在游戲中,主角的身邊總是跟著自己的魔寵,我們也來實驗一下,下面我用球來代替魔寵。代碼如下:1.publicTransformtarg
6、et;2.????privateNavMeshAgentagent;3.????voidStart(){4.????????agent=GetComponent();5.????}1.????voidUpdate(){2.????????if(target!=null){3.????????????agent.destination=target.position;4.????????}5.????}把腳本拖放到魔寵上,并且給魔寵添加NavMeshAgent設(shè)置障礙物?如圖,在添加一個cube充當障礙物設(shè)置cube
7、的屬性:???????這樣在巨魔到達障礙物時就走不過去。高空下落游戲中經(jīng)常有從山上或者是墻上跳下的人物,我也來實驗一下這功能。選中要跳落的地點,點擊障礙物,在右側(cè)欄中進行設(shè)置:??設(shè)置完成后出現(xiàn)如下場景:尋路網(wǎng)格層把Navigation里面Bake的Drop?Height的值設(shè)為0,取消勾選Navigation里面Object的OffMeshLink?Generatic,點擊Bake;在Navigation里面Layers創(chuàng)建兩個Layers(LayersUp,LayersDown)-->Bake設(shè)置巨魔屬性:一定要注意,創(chuàng)建了兩個Layer
8、s,選中兩條路徑,所選的路徑的Navigation里面的Navigation?Layer也要改變:這樣才能實現(xiàn)巨魔有選擇性的尋路。NavMeshAgent屬性解釋: