1.首先创建多个空的游戏物体,用来一次规划出敌人要行走的路线,并且设置标记,方便查看
2.编写获取每个路径点的脚本WayPoint:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WayPoint : MonoBehaviour
{
//创建一个数组 用来保存 路径点
public static Transform[] wayPoint;
private void Awake()
{
//给 保存路径点的数组 长度
wayPoint = new Transform[transform.childCount];
//将路径点 依次存入数组
for (int i = 0; i < wayPoint.Length; i++)
{
wayPoint[i] = transform.GetChild(i);
Debug.Log("wayPoint:"+wayPoint[i]);
}
}
}
将获取路径点的脚本WayPoint挂载在点的父级物体上:
3.编写敌人行走的方法MeneyMoving:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//敌人移动类
public class MeneyMoving : MonoBehaviour
{
private Transform[] positions;
public int index = 0;
public float speed = 2f;
// Start is called before the first frame update
void Start()
{
//获取路径点 数组
positions = WayPoint.wayPoint;
}
// Update is called once per frame
void Update()
{
//调用敌人移动方法
Moving();
}
void Moving() {
//如果index小于 路径点数组点最大下标 就继续移动
if (index <= positions.Length - 1) {
//获得 单位向量
transform.Translate((positions[index].position - transform.position).normalized * Time.deltaTime * speed);
// transform.position = Vector3.up * 0.3f;
if (Vector3.Distance(positions[index].position, transform.position) <= 1f)
{
index++;
}
}
}
}
将敌人行走的方法MeneyMoving挂载在敌人物体上: