2013年8月29日 星期四

使用Unity內建的Navigation做尋路

學習文章出自 : http://game.ceeger.com/forum/read.php?tid=2874&fid=2

1.準備做六個物件新建,一個Cube 設置大小(10,0.5,10),重命名“plane”;在plane上新建3个cube改名 “obstacle”;新建一個sphere,和一個cube 分别重命名為“player”,“target”。這個时候Hierarchy面板如下图所示


2 Window>Navigation 打开Naviagtion面板,選中3個obstacle設置如下圖:

 選中plane設置如下圖:

3 新建一个C#脚本,如下:

  1. public class NavTest : MonoBehaviour
  2. {
    1. public Transform target;
    2. private NavMeshAgent navMeshAgent;

    1. void Start ()
    2. {
    3. navMeshAgent = GetComponent<NavMeshAgent> ();
    4. }

    1. void Update ()
    2. {
    3. navMeshAgent.destination = target.position;
    4. }
  3. }

4 為player添加component>Naviagtion>Nav Mesh Agent組件,把腳本掛在player上;NavMesh Walkable 層為Deault,target拖拽到NavTest中的Target 設置如下圖:

5 打開Navigation面板下Bake子面板設置一些参數,参數可以參考手册,點選Bake,然後Ctrl+P簡單的尋路就OK了。

當這些設定做完之後,就可以移動看看target此時player會自動往他前進的,不過player行走的距離只侷限在plane因為只拷貝了這個大小,可以玩玩看,蠻簡單的A* !!!


沒有留言:

張貼留言