1创建空物体,在空物体里创建多个路径目标点。自定义脚本:RoadPoints
using UnityEngine; using System.Collections; public class RoadPoints : MonoBehaviour { public static Transform[] pointPosition;//创建路径目标点 //获得每一个路径点 private void Awake() { pointPosition = new Transform[transform.childCount]; for (int i = 0; i < pointPosition.Length; i++) { pointPosition[i] = transform.GetChild(i); } } }
2.给移动物体Player自定义脚本。
using UnityEngine; using System.Collections; /* *获得当前物件下的所有子物体,将它们作为路径点 *游戏物体按此路径移动 */ public class PlayerCC : MonoBehaviour { public float speed = 10; private Transform[] positions; private int index = 0; private void Start() { positions = RoadPoints.pointPosition; }
void Update() { Move(); } //创建移动的方法 void Move() { if (index > positions.Length - 1) return;//规定数组不超出范围 //将物体位置与下一个目标点位置单位化,从而移动到目标点 transform.Translate( (positions[index].position - transform.position).normalized * Time.deltaTime * speed); //如果物体与目标点位置少于0.2,说明到达当前目标点 //那么物体向 if (Vector3.Distance(positions[index].position, transform.position) <= 0.1f) { index++; } } }