所以我尝试着让一个游戏对象在三点之间来回移动,这是在C#中的统一,我在统一检查器中分配了3个游戏对象,我想让游戏对象在点之间来回移动问题是我得到一个索引超出范围错误。为什么是这样的,我该如何解决它? 对不起,可能是格格不入的mestakes。它为什么会抛出索引超出范围错误?
这里是我的代码:
public class Enamy2 : MonoBehaviour {
public Transform[] pointPosition;
public float enamySpeed;
private int currentPoint;
private bool backTracking = false;
// Use this for initialization
void Start() {
transform.position = pointPosition [0].position;
currentPoint = 0;
}
// Update is called once per frame
void Update() {
if (transform.position == pointPosition[currentPoint].position) {
if (backTracking)
currentPoint--;
else
currentPoint++;
}
if(currentPoint >= pointPosition.Length) {
backTracking = true;
}
transform.position = Vector3.MoveTowards (transform.position, pointPosition [currentPoint].position, Time.deltaTime * enamySpeed);
}
}
我应该如何修改脚本,以便我能得到desiered的结果?我只做了一个星期的团结和C#,所以对我来说很难... –
您需要在if语句中重置'currentPoint'。例如:'backTracking = true; currentPoint = 0;'或者你处理backTracking的方式不同。 –
其实,你也必须确保'currentPoint'从不否定。添加一个if语句来关闭backTracking,如果'currentPoint'达到0. –