尋路系統:固定路線

using UnityEngine;
using System.Collections;
using System;

public class nine : MonoBehaviour {
//確定下一個索引
int nextPathPoints = 1;
//掛在對象
public GameObject player;
//移動的位置
GameObject[] pathPointInts;
// Use this for initialization
void Start () {
//所有小球位置的Path01;記得去Unity頁面全部改成Path01
pathPointInts = GameObject.FindGameObjectsWithTag(“Path01”);
//位置順序
// Array.Reverse(pathPointInts);
//位置順序和上邊一樣
Array.Sort(pathPointInts,(x,y)=> { return x.gameObject.name.CompareTo(y.gameObject.name); });
//對象的初始位置
player.transform.position = pathPointInts[0].transform.position;
//移動的方向
player.transform.forward = pathPointInts[nextPathPoints].transform.position - player.transform.position;

}

// Update is called once per frame
void Update () {
    //首先判斷每一個點的位置和對象的位置
if (Vector3.Distance(pathPointInts[nextPathPoints].transform.position, player.transform.position) < 0.1f)
    {   //判斷當前的索引是否爲最後一個
        if (nextPathPoints != pathPointInts.Length  - 1)
        {
            nextPathPoints++;
        }
        //判斷最後點的的位置和對象的距離,確定對象的最後位置,不用最後一直移動;
        if (Vector3.Distance(pathPointInts[pathPointInts.Length - 1].transform.position, player.transform.position) < 0.1f)
        {//確定對象的最後位置,不用最後一直移動;
            player.transform.position = pathPointInts[pathPointInts.Length - 1].transform.position;
        }
        //確定每一次對象的方向,因爲每一次nextPathPoints都++;
        player.transform.forward = pathPointInts[nextPathPoints].transform.position - player.transform.position;
    }
   //對象移動向前,自己的座標軸;
  transform.Translate(Vector3.forward * 5 * Time.deltaTime, Space.Self);

}

}

這裏寫圖片描述

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