1. 目标移动的情况
接着上一篇的文章,前面的是目标固定的情形,这篇描述的是目标移动的情况下。我们首先在场景中随机地布置一些坐标点,然后让目标沿着这些预先设置的轨迹移动,因此给目标物体添加AILocomotion和SteeringForSeek组件,并且将SterringForSeek的target设置为路径中的第一个点,具体做法如下:
(1) 新建类EnemyPosition并挂载到目标物体上
using UnityEngine;
using System.Collections;
public class EnemyPosition : MonoBehaviour {
public GameObject[] pos;
private int index = 0;
// Use this for initialization
void Start () {
this.GetComponent<SteeringForSeek> ().target = pos [index];
}
// Update is called once per frame
void Update () {
if (Vector3.Distance (this.transform.position, pos [index].transform.position) < 4) {
index = ((index++) % (pos.Length -1));
this.GetComponent<SteeringForSeek> ().target = pos [index];
}
}
}
然后在Unity中新建7个随机摆放的物体,并赋值给pos数组。
程序运行截图如下:
可以看到目标先向1移动,然后向2移动。。。