如何開啟CC字幕?
在Unity中,想在NavMesh上使用導航功能的物件,需要在移動物件上新增Nav Mesh Agent元件。
以下是Nav Mesh Agent元件上的參數。
Agent Size:
Radius:Agent元件半徑。
Height:Agent元件高度。
Base Offset:Agent元件垂直中心位置。
Steering:
Speed:導航時的移動速度。
Angular Speed:導航時的旋轉速度。
Acceleration:導航時的最大加速度(數值/秒^2)。
Stopping Distance:與目標物在多少距離內,會停止導航。
Auto Braking:是否要自動煞車,避免導航時超過目標。
Obstacle Avoidance:
Quality:障礙物迴避的精確度,
數值設定越高,障礙物迴避就會越精確,但執行效能就會變差,設定越低則反之。
Priority:迴避優先度,數值越低代表優先度越高,
優先度高的物件在移動時,不會被優先度低的物件阻擋。
Path Finding:
Auto Traverse off Mesh Link:是否要讓物件做分離網格的移動。
Auto Repath:如果原本的路徑失效,是否要重新規畫路徑。
Area Mask:選擇那些區域可通行,若取消選取,該區域則不會在路徑規劃範圍內。
完成Agent元件數值的設定後,就可以指定移動物件的目標,讓它開始被導航。
首先需要在移動物件上新增腳本。
腳本內容如下:
using UnityEngine; public class SampleTarget : MonoBehaviour { public Transform target; private NavMeshAgent agent; void Start () { agent = GetComponent<NavMeshAgent>(); } void Update () { agent.SetDestination(target.position); } }抓取物件下NavMeshAgent元件,透過持續執行SetDestination追蹤目標物。
這裡讓目標物(target)為範例中的泰迪熊,下圖是執行結果:
被詭異物體追趕的熊‧‧‧
以上就是導航系統裡的NavMesh Agent元件,上次生成了NavMesh,加上這次的Agent元件,已經可以看到Unity導航系統的結果。
這次就到這裡。
hi Jerrard 先進您好
回覆刪除我在設定導航時發生以下錯誤
"SetDestination" can only be called on an active agent that has been placed on a NavMesh.
不知道這要怎麼處理~ 謝謝。