您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Unity3D如何實(shí)現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
NavMesh(導(dǎo)航網(wǎng)格)是3D游戲世界中用于動態(tài)物體實(shí)現(xiàn)自動尋路的技術(shù)。
NavMesh系統(tǒng)是人工智能的一種,它使用一個(gè)添加在游戲?qū)ο笊匣蛘咦鳛橛螒驅(qū)ο蟾肝矬w的名為“導(dǎo)航網(wǎng)格代理”(NavMeshAgent)的組件來控制該游戲?qū)ο髮ふ夷軌蛲ㄟ^的路徑,并最終到達(dá)目的地。
自動尋路還可以實(shí)現(xiàn)繞過障礙、爬上與跳下障礙物、按類別尋找屬于自己的道路、動態(tài)設(shè)置道路中的障礙等技術(shù)。
下面用一個(gè)簡單的Demo來介紹NavMesh的應(yīng)用:
1.在Scene場景中添加Cube設(shè)置場景,如圖所示:
2.選擇除了主角、目標(biāo)以及攝像機(jī)、直線光以外的所有物體,在Inspector窗口的右上角勾選Static,成為靜態(tài)物體,并設(shè)置成Navigation Static靜態(tài)類型。
3.在主窗口中選擇[Window]→[Navigation],打開Navigation窗口。該窗口用于生成路徑尋找所需要的導(dǎo)航網(wǎng)格結(jié)構(gòu),代理將根據(jù)該導(dǎo)航網(wǎng)格進(jìn)行尋路計(jì)算。確保勾選了“Navigation Static”。點(diǎn)擊Bake進(jìn)行烘培。
4.選擇需要尋路的游戲?qū)ο螅瑸樗砑右粋€(gè)NavMeshAgent組件。
5.編寫尋路代碼,新建一個(gè)腳本:
//尋路網(wǎng)格導(dǎo)航 using UnityEngine; using System.Collections; public class DemoNavigation : MonoBehaviour { private NavMeshAgent agent; //導(dǎo)航代理 public Transform TransHero; // Use this for initialization void Start() { agent = this.GetComponent<NavMeshAgent>(); if (agent && TransHero) { agent.SetDestination(TransHero.transform.position); } } }
運(yùn)行結(jié)果:
這樣就實(shí)現(xiàn)了NavMesh導(dǎo)航網(wǎng)格尋路。
看完這篇關(guān)于Unity3D如何實(shí)現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。