Unity自動尋路功能的實現(二)

方法二:自己寫腳本,定義路點自動尋路
首先,新建一個地面,添加一個Cube作爲玩家,改名Player,然後創建3個空物體,位置要不一樣,然後改名爲Point01,Point02,Point03,我設置的如下:
這裏寫圖片描述
3個路點作爲玩家要去的目標點
然後新建一個AutoMove腳本,掛到Player下,腳本如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AutoMove : MonoBehaviour {

    public List<Transform> Points;//三個目標點的鏈表
    private int index=0;//當前目標點的索引
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        float dis = Vector3.Distance(transform.position, Points[index].position);//獲得當前玩家位置和目標點的距離
        if (dis <= 0.5f)
        {
            //如果獲取的距離小於0.5米,說明已經到達,
            //已經到達目標點,更新索引
            if (index == Points.Count-1)//如果索引是最後一個,更新到最前面一個索引
            {
                index = 0;
            }
            else//否則就索引自動增加
            {
                index++;
            }
            transform.position = Vector3.MoveTowards(transform.position, Points[index].position, 7.0f * Time.deltaTime);//移動到目標位置
        }
        else
        {
            transform.position = Vector3.MoveTowards(transform.position, Points[index].position,1.0f*Time.deltaTime);
        }


    }
}

然後把三個路點掛上去
這裏寫圖片描述
運行,就實現了簡單的巡邏AI,基本原理就是這樣,如果要進行深入設置的話,就可以開始寫有限狀態機,實現狀態切換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章