角色控制器+Nav導(dǎo)航網(wǎng)格尋址

(一)Character Controller角色控制器組件

圖片1.png

Paste_Image.png

做過小Demo,讓游戲物體朝向鼠標(biāo)點(diǎn)擊的地面位置移動更舞,代碼如下:


Paste_Image.png
public class charter : MonoBehaviour
{
    private CharacterController c;
    void Start ()
    {
        c = GetComponent<CharacterController>();
    }
    void Update ()
    {

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if (Physics.Raycast(ray,out hit ))
        {
            if (hit.collider.name.Equals("Cube"))
            {
                if (Input.GetMouseButton(0))
                {
                    Vector3 p = hit.point-transform.position;
                    c.Move(p*Time.deltaTime*5f);
                }
            }
        }
    }
}

(二)Nav Mesh Agent:尋路、尋址

如果角色面前有障礙坎吻,鼠標(biāo)點(diǎn)擊到障礙物后邊缆蝉,如何移動瘦真,我們可以使用Nav Mesh Agent組件。


圖片2.png

Paste_Image.png

Paste_Image.png

首先我們創(chuàng)建一個障礙物一個游戲?qū)ο蠛鸵粋€地面,然后我們給游戲?qū)ο筇砑覰av Mesh Agent組件和移動腳本


Paste_Image.png
代碼如下
public class charter : MonoBehaviour
{
    private NavMeshAgent c;
    void Start()
    {
        c = GetComponent<NavMeshAgent>();
    }
    void Update()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit))
        {
            if (!hit.collider.name.Equals("Plane"))
            {                           
                   return;         
            }
            Vector3 p = hit.point;
            c.SetDestination(p);
        }
    }
}

然后我們我們設(shè)置地面和障礙物的靜態(tài)


Paste_Image.png

然后我們再去給地面和障礙物烘焙,最后別忘記Bake哦


Paste_Image.png

Paste_Image.png
這樣我們就完成了咸产,運(yùn)行試試
OO.gif

(三)Navigation導(dǎo)航

Paste_Image.png

Paste_Image.png

Object:物體參數(shù)面板
Navigation Static:勾選后表示該對象參與導(dǎo)航網(wǎng)格的烘培。
OffMeshLink Generation:勾選后可跳躍(Jump)導(dǎo)航網(wǎng)格和下落(Drop)焚志。
Bake:烘培參數(shù)面板
Radius:具有代表性的物體半徑酱酬,半徑越小生成的網(wǎng)格面積越大云矫。
Height:具有代表性的物體的高度让禀。
Max Slope:斜坡的坡度。
Ste Height:臺階高度痛阻。
Drop Height:允許最大的下落距離阱当。
Jump Distance:允許最大的跳躍距離。
Min Region Area:網(wǎng)格面積小于該值則不生成導(dǎo)航網(wǎng)格录淡。
Width Inaccuracy:允許最大寬度的誤差嫉戚。
Height Inaccuracy:允許最大高度的誤差免钻。
Height Mesh:勾選后會保存高度信息极舔,同時會消耗一些性能和存儲空間拆魏。

(四)offMeshLink:從網(wǎng)鏈接

Paste_Image.png

屬性:

開始 (Start) 分離網(wǎng)格鏈接的開始對象渤刃。
結(jié)束 (End) 分離網(wǎng)格鏈接的結(jié)束對象卖子。
成本覆蓋 (Cost Override) 如果值為正洋闽,則在路徑請求處理中計算路徑成本時使用該屬性突梦。否則宫患,我們使用默認(rèn)成本(此游戲?qū)ο笏鶎俚膶拥某杀荆H绻俺杀靖采w”(Cost Override) 設(shè)置為值 3.0虚汛,則在分離網(wǎng)格鏈接上移動的成本比在默認(rèn)導(dǎo)航網(wǎng)格區(qū)域中移動相同距離的成本高三倍卷哩。 此屬性可在運(yùn)行時編輯殉疼,無需重新烘焙''
雙向 (Bi Directional) 如果此屬性為“開”(on),則可以雙向穿越鏈接挂洛,如果它為“關(guān)”(off)眠砾,則只能按從“開始”(Start) 到“結(jié)束”(End) 的方向穿越鏈接褒颈。
已激活 (Activated) 指定尋路器是否實(shí)際使用此鏈接。此屬性可在運(yùn)行時編輯堡掏,無需重新烘焙泉唁。

如何從一個地面跳躍到另一個地面

首先我們在創(chuàng)建另一Plane(1)亭畜,然后在第一個Plane上添加Off Mesh Link上并且將兩個地面連接起來迎卤,然后我們給新添加的地面也添加今天值蜗搔,再然后我們給新添加的地面也烘焙好


Paste_Image.png

然后我們在烘焙界面Bake上修改其距離


Paste_Image.png
并且將移動的代碼修改
Paste_Image.png

這樣我們就完成了


OK.gif

(五)Nav Mesh Obstacle

Paste_Image.png

在導(dǎo)航網(wǎng)格上的固定障礙物,可以作為烘焙過程中的一部分設(shè)置不同。
但是二拐,也可能在場景具有動態(tài)阻擋物,這將通過Agent移動來避開企软。
這種動態(tài)障礙物仗哨,可以指定Navmesh Obstacle組
可以被添加任何游戲物體上并隨該對象移動。

Radius 半徑 : 障礙物圓柱的半徑
Height 高度 : 障礙物圓柱的高度
Carve:是否打開在導(dǎo)航網(wǎng)格挖洞的模式
Move Threshold:當(dāng)模式為Carve時萨醒,此物體的移動距離超過這個閥值后苇倡,更新當(dāng)前的導(dǎo)航網(wǎng)格(重新挖洞)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晓褪,一起剝皮案震驚了整個濱河市综慎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌变过,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阔拳,死亡現(xiàn)場離奇詭異糊肠,居然都是意外死亡遗锣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笔咽,“玉大人,你說我怎么就攤上這事拯田〈樱” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵臣淤,是天一觀的道長荒典。 經(jīng)常有香客問我吞鸭,道長刻剥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任御吞,我火速辦了婚禮陶珠,結(jié)果婚禮上揍诽,老公的妹妹穿的比我還像新娘栗竖。我一直安慰自己,他們只是感情好添吗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布碟联。 她就那樣靜靜地躺著玄帕,像睡著了一般想邦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鹰椒,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音淆珊,去河邊找鬼施符。 笑死擂找,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贯涎。 我是一名探鬼主播塘雳,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼隘马!你這毒婦竟也來了祟霍?” 一聲冷哼從身側(cè)響起盈包,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤呢燥,失蹤者是張志新(化名)和其女友劉穎叛氨,沒想到半個月后棘伴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仁连,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年使鹅,在試婚紗的時候發(fā)現(xiàn)自己被綠了昌抠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炊苫。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖执虹,靈堂內(nèi)的尸體忽然破棺而出蒋畜,到底是詐尸還是另有隱情姻成,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布均牢,位于F島的核電站徘跪,受9級特大地震影響琅攘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哨查,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一寒亥、第九天 我趴在偏房一處隱蔽的房頂上張望荧关。 院中可真熱鬧,春花似錦加勤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吆玖,卻和暖如春马篮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翅阵。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工掷匠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讹语,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像导匣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鸠儿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 角色控制是游戲設(shè)計中必不可少的一個設(shè)計環(huán)節(jié),這一節(jié)我們講一講如何制作基本的角色運(yùn)動控制交互邏輯命斧。 因?yàn)槭呛唵螌?shí)例教...
    shimmery閱讀 9,385評論 5 20
  • 一国葬、描述:一個角色在特定環(huán)境下自動到達(dá)指定目標(biāo)汇四。導(dǎo)航網(wǎng)格(NavMesh)1、設(shè)置導(dǎo)航靜態(tài)物體(Navigatio...
    斗魁閱讀 721評論 0 0
  • NavMesh(導(dǎo)航網(wǎng)格)是3D游戲世界中用于實(shí)現(xiàn)動態(tài)物體自動尋路的一種技術(shù),將游戲中復(fù)雜的結(jié)構(gòu)組織關(guān)系簡化為帶有...
    李亞楠0219閱讀 1,396評論 0 2
  • 泉城六月互捌,須臾十日行剂,佳年萍水相聚秕噪。齊魯兒女腌巾,颯颯展英顏铲觉。玉水亭臺美交院,催新舟碉克,泛泊浩瀚并齐。倚闌干,流光晝...
    懜_0e7b閱讀 157評論 0 0
  • 問:為什么會選擇創(chuàng)業(yè)食侮? 答:想做一件自己想做的事情,并獲得將來的自由锯七。 問:為什么選擇做成人鋼琴培訓(xùn)眉尸? 答:覺得每...
    看科技閱讀 453評論 0 0