unity之自動尋徑_第1頁
unity之自動尋徑_第2頁
unity之自動尋徑_第3頁
unity之自動尋徑_第4頁
unity之自動尋徑_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、自動尋徑自動尋徑MMO - Massively Multiplayer Online,大型多人在線。 策略類或戰(zhàn)略類(MMOSLG) 動作類(MMOACT)。 冒險類(MMOAVG)。 模擬類游戲(MMOSG) 運動類(MMOSPT) 賽車類(MMORCG) 角色扮演類(MMORPG)現(xiàn)在的大部分mmo游戲都有了自動尋路功能。點擊場景上的一個位置,角色就會自動尋路過去。中間可能會有很多的障礙物,角色會自動繞過障礙物,最終達到終點。使用Unity來開發(fā)手游,自動尋路可以有很多種實現(xiàn)方式。我們要實現(xiàn)一個功能:點擊場景中的一個位置,角色可以自動尋路過去。角色會繞過各種復雜的障礙,找到一條理論上”最短

2、路徑“。自動尋徑1.創(chuàng)建地形2.添加角色3.創(chuàng)建多個障礙物,盡量擺的復雜一點,來檢查Navmesh 的可用性和效率。4.選中地形,在Navigation窗口中,設置Navigation Static巨魔自動尋徑5.依次選中障礙物,在avigation窗口中,設置Navigation Static6.Navigation窗口中,選擇Bake(烘焙)界面,點擊Bake按鈕,進程場景烘焙,就可以烘焙出尋路網(wǎng)格了7.為角色添加NavMeshAgent組件。Component-Navigation-Nav Mesh Agent8.為角色新增一個腳本PlayerController.cs,實現(xiàn)點擊目標,自

3、動尋路功能巨魔自動尋徑private NavMeshAgent agent;private Animator anim;void Start() agent = GetComponent(); anim = GetComponent();void Update() RaycastHit hit;if (Input.GetMouseButtonDown(0) Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out hit)agent.SetDestination(hit.po

4、int); 巨魔自動尋徑/播放動畫,判斷是否到達了目的地,播放空閑或者跑步動畫 if (agent.remainingDistance = 0) AnimationToIdle(); else AnimationToWalk(); public void AnimationToIdle()anim.SetFloat(idle, 1F);anim.SetFloat(walk, 0.0F);anim.SetFloat(run, 0F);巨魔自動尋徑public void AnimationToWalk()anim.SetFloat(run, 0.0F);anim.SetFloat(idle, 0F

5、);anim.SetFloat(walk, 1.0F);巨魔自動尋徑.角色身上的Nav Mesh Agent 組件Radius 半徑: 代理的半徑(僅用于尋路目的,可以跟實際對象的半徑大小不一樣,一般比實際對象的半徑大)。Speed 速度: 代理可以周游世界,走向它的目的地的最大移動速度。巨魔自動尋徑Acceleration 加速度: 最大加速度。Angular Speed 角速度: 最高轉(zhuǎn)速(度/秒)。Stopping distance 制動距離:制動距離。到目的地的距離小于這個值,代理減速。Auto Traverse OffMesh Link 自動遍歷OffMesh鏈接:自動移動并關閉Of

6、fMeshLinksAuto Repath 自動重新尋路:如果現(xiàn)有的部分已失效,獲得新的路徑Height 高度:代理的高度(用于調(diào)試圖形)。Base offset 基本偏移:碰撞幾何體相對于實際幾何體垂直的偏移。Obstacle Avoidance Type 障礙躲避類型 :躲避的質(zhì)量水平。NavMesh Walkable 導航網(wǎng)格行走:指定代理可以遍歷的導航網(wǎng)格層類型。巨魔自動尋徑寵物跟隨 public Transform target;private NavMeshAgent agent;void Start () agent = GetComponent();void Update ()

7、 if (target!= null) agent.destination=target.position;把腳本給寵物,為寵物添加NavMeshAgent,target為巨魔寵物跟隨Navmesh Obstacle之前我們都是用固定的物體作為障礙物,然后烘焙場景。Unity還提供了動態(tài)的障礙物。任何一個GameObject都可以添加Navmesh Obstacle組件,變成一個障礙物。具體步驟是Component-Navigation-Navmesh Obstacle.它有兩個屬性:半徑和高度,可以設置跟你的物品差不多的體積大小。巨魔從高空跳下 1、設置Navigation里面Bake的Drop Height的值 2、勾選Navigation里面Object的OffMeshLink Generatic 3、Bake巨魔選擇性的行走1、把Navigation里面Bake的Drop Height的值設為02、取消勾選Navigation里面Object的OffMeshLink Generatic3、Bake4、在Navigation里面Layers創(chuàng)建兩個Layers(LayersUp LayersDown)-Bake5、選中巨魔,設置巨魔屬性(NavMesh Walk

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論