你可以使用 unity官方提供的 unity導航組件或第三方 unity導航組件,以實現游戲中角色或其他物體的導航。
unity導航組件通常具有多種導航模式,如飛行模式、步行模式、車輛模式等,可以根據不同的需求選擇合適的模式。同時,unity導航組件還可以設置路徑規劃
、目標導航
等功能,以實現更加復雜的導航需求。
導航是生成網格的時候,網格內可以走,網格外不能走
導航的應用
烘培配置、他是通過人的數據生成
設置好點擊bake,就會產生這樣的網格、藍色曲云可以行走
使用導航根據鼠標點擊移動,自動避障
在移動的物體上添加導航代理組件
代理類型,第二個打開導航設置進入上面的導航面板(不是導航代理組件哈)
在導航中添加代理選項和配置
新建腳本、需要移動的物體上綁定上腳本
using System.Collections;
using System.Collections.Generic,
using UnityEngine;
using UnityEngine.Al;public class PlayerControl : MonoBehaviour{private NavMeshAgent agent;void start(){//獲取代理組件agent = GetComponent<NavMeshAgent>();}void Update(){//如果按下鼠標if (input.GetMouseButtonDown(0)){//獲取點擊位置Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);//聲明射線碰撞的信息RaycastHit hit;if(Physics.Raycast(ray,out hit)){//點擊位置Vector3 point = hit.point;//設置該位置為導航目標點agent.SetDestination(point);}}}
}
網格鏈接和動態障礙物
1、網格障礙物組件
障礙物上把靜態去掉
在去掉靜態的物體上添加導航網格障礙物組件
點擊切割會動態烘培導航、耗性能
如果想要從高臺上跳躍下去、那么就需要,點擊高臺物體,點擊導航設置,點擊對象,點擊生成網格鏈接
下面參數才能生效
高度設置成10后會有一下幾個圓形區域,就是這些位置是可以跳下去的
2、網格鏈接組件
類似于傳送門,從地圖的a點到b點
組件總的自動更新位置,物體發生位置改變時,傳送位置自動改變
導航區域
設置區域
添加物體靜態的勾選
選擇物體后,點擊導航的對象、點擊區域設置、然后重新烘培
特殊需要特殊角色能進入,正常人不能進入的區域,就修改區域遮罩