Unity3D實(shí)現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路
NavMesh(導(dǎo)航網(wǎng)格)是3D游戲世界中用于動(dòng)態(tài)物體實(shí)現(xiàn)自動(dòng)尋路的技術(shù)。
NavMesh系統(tǒng)是人工智能的一種,它使用一個(gè)添加在游戲?qū)ο笊匣蛘咦鳛橛螒驅(qū)ο蟾肝矬w的名為“導(dǎo)航網(wǎng)格代理”(NavMeshAgent)的組件來(lái)控制該游戲?qū)ο髮ふ夷軌蛲ㄟ^(guò)的路徑,并最終到達(dá)目的地。
自動(dòng)尋路還可以實(shí)現(xiàn)繞過(guò)障礙、爬上與跳下障礙物、按類別尋找屬于自己的道路、動(dòng)態(tài)設(shè)置道路中的障礙等技術(shù)。
下面用一個(gè)簡(jiǎn)單的Demo來(lái)介紹NavMesh的應(yīng)用:
1.在Scene場(chǎng)景中添加Cube設(shè)置場(chǎng)景,如圖所示:
2.選擇除了主角、目標(biāo)以及攝像機(jī)、直線光以外的所有物體,在Inspector窗口的右上角勾選Static,成為靜態(tài)物體,并設(shè)置成Navigation Static靜態(tài)類型。
3.在主窗口中選擇[Window]→[Navigation],打開(kāi)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.編寫(xiě)尋路代碼,新建一個(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)格尋路。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)Excel數(shù)據(jù)導(dǎo)入到SQL server數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了在C#中如何實(shí)現(xiàn)Excel數(shù)據(jù)導(dǎo)入到SQL server數(shù)據(jù)庫(kù)中,文中的示例代碼簡(jiǎn)潔易懂,希望對(duì)大家有一定的幫助2024-03-03C#中關(guān)于zip壓縮解壓幫助類的封裝 附源碼下載
之前一個(gè)同學(xué)問(wèn)了這個(gè)問(wèn)題后,看了園子里其它園友的封裝,都很零碎,調(diào)用也不是很方便。所以自己就封裝了一個(gè)zip解壓的類。后來(lái)想整理下怕自己忘了。就把壓縮的類也一并封裝了2013-02-02unity 切換場(chǎng)景不銷毀物體問(wèn)題的解決
這篇文章主要介紹了unity 切換場(chǎng)景不銷毀物體問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04C#數(shù)組學(xué)習(xí)相關(guān)資料整理
最近開(kāi)始學(xué)習(xí)c#,并有幸接觸到了數(shù)組方便的操作,感覺(jué)確實(shí)不錯(cuò),這里簡(jiǎn)單的整理下c#相關(guān)的學(xué)習(xí)資料,方便大家學(xué)習(xí)2012-09-09C#基于DBContext(EF)實(shí)現(xiàn)通用增刪改查的REST方法實(shí)例
這篇文章主要介紹了C#基于DBContext(EF)實(shí)現(xiàn)通用增刪改查的REST方法實(shí)例,是C#程序設(shè)計(jì)中非常實(shí)用的技巧,需要的朋友可以參考下2014-10-10C#連接Mysql數(shù)據(jù)庫(kù)詳細(xì)教程(內(nèi)附Mysql及Navicat)
這篇文章主要給大家介紹了C#連接Mysql數(shù)據(jù)庫(kù)詳細(xì)教程(內(nèi)附Mysql及Navicat),文中通過(guò)代碼示例和圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-10-10C#打包部署并把.net framework框架打到安裝包的方法步驟
打包c(diǎn)#程序時(shí),有時(shí)需要添加.net framework組件到安裝包,本文就來(lái)介紹一下C#打包部署并把.net framework框架打到安裝包的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10算法練習(xí)之從String.indexOf的模擬實(shí)現(xiàn)開(kāi)始
這篇文章主要介紹了算法練習(xí)從String.indexOf的模擬實(shí)現(xiàn)開(kāi)始,需要的朋友可以參考下2014-12-12