Unity3D實現(xiàn)NavMesh導航網(wǎng)格尋路
NavMesh(導航網(wǎng)格)是3D游戲世界中用于動態(tài)物體實現(xiàn)自動尋路的技術。
NavMesh系統(tǒng)是人工智能的一種,它使用一個添加在游戲?qū)ο笊匣蛘咦鳛橛螒驅(qū)ο蟾肝矬w的名為“導航網(wǎng)格代理”(NavMeshAgent)的組件來控制該游戲?qū)ο髮ふ夷軌蛲ㄟ^的路徑,并最終到達目的地。
自動尋路還可以實現(xiàn)繞過障礙、爬上與跳下障礙物、按類別尋找屬于自己的道路、動態(tài)設置道路中的障礙等技術。
下面用一個簡單的Demo來介紹NavMesh的應用:
1.在Scene場景中添加Cube設置場景,如圖所示:

2.選擇除了主角、目標以及攝像機、直線光以外的所有物體,在Inspector窗口的右上角勾選Static,成為靜態(tài)物體,并設置成Navigation Static靜態(tài)類型。

3.在主窗口中選擇[Window]→[Navigation],打開Navigation窗口。該窗口用于生成路徑尋找所需要的導航網(wǎng)格結(jié)構(gòu),代理將根據(jù)該導航網(wǎng)格進行尋路計算。確保勾選了“Navigation Static”。點擊Bake進行烘培。

4.選擇需要尋路的游戲?qū)ο?,為它添加一個NavMeshAgent組件。

5.編寫尋路代碼,新建一個腳本:
//尋路網(wǎng)格導航
using UnityEngine;
using System.Collections;
public class DemoNavigation : MonoBehaviour
{
private NavMeshAgent agent; //導航代理
public Transform TransHero;
// Use this for initialization
void Start()
{
agent = this.GetComponent<NavMeshAgent>();
if (agent && TransHero)
{
agent.SetDestination(TransHero.transform.position);
}
}
}
運行結(jié)果:

這樣就實現(xiàn)了NavMesh導航網(wǎng)格尋路。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C#使用zxing/zbar/thoughtworkQRcode解析二維碼的示例代碼
zxing是谷歌開源的二維碼庫,zbar,thoughtworkQRcode也是開源的,三者之間比較各有優(yōu)劣,本文將通過一個案例demo源碼,帶來認識學習下這三者的實際解碼效果,感興趣的可以了解一下2023-07-07
C#?VB.NET?實現(xiàn)在Word中嵌入多媒體(視頻、音頻)文件
Word中可將Office、PDF、txt等文件作為OLE對象插入到文檔中,雙擊該對象可直接訪問或編輯該文件,除了以上常見的文件格式對象,也可以插入多媒體文件,如視頻、音頻等。本篇文章介紹了通過C#實現(xiàn)在Word中插入多媒體文件。感興趣的可以學習一下2021-12-12
C#寫入對象或集合類型數(shù)據(jù)到xml文件的方法
這篇文章主要介紹了C#寫入對象或集合類型數(shù)據(jù)到xml文件的方法,涉及C#針對XML文件的相關操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07

