Боты сначала двигаются в плоскости X и Z, а потом поднимаются в Y и начинают хаотично двигаться
Вот код, помогите пожалуйста решить проблемку
using UnityEngine;
using System.Collections;
public class AI : MonoBehaviour {
public bool isCycle = false;
public Vector3 _targetCyclePoints;
private int _targetIndex=0;
public float _range = 10f;
private float _minDist =5;
private Vector3 _spawnPoint;
public float _speed = 1f;
private float _lastTimeGo = -1f;
private float _timeForIdle = 2f;
private Vector3 _targetPoint;
void Start (){
if(!isCycle)
{
_spawnPoint = new Vector3(transform.position.x, transform.position.z);
}
}
void Update ()
{
if (_lastTimeGo <=Time.time)
{
Vector2 curpos = new Vector3(transform.position.x, transform.position.z);
Vector2 newpos = Vector3.zero;
if (isCycle)
{
_targetIndex++;
if (_targetIndex ==_targetCyclePoints.Length)
_targetIndex=0;
newpos = new Vector3(_targetCyclePoints[_targetIndex].x,_targetCyclePoints[_targetIndex].z);
}
else
{
while (true)
{
newpos = new Vector3(Random.Range(_spawnPoint.x - _range, _spawnPoint.x+_range), Random.Range(_spawnPoint.y - _range, _spawnPoint.y+_range));
if (Vector2.Distance(curpos,newpos) >=_minDist)
break;
}
}
_targetPoint=newpos;
_lastTimeGo =Time.time+Vector3.Distance(curpos, newpos)/ (_speed)+_timeForIdle;
transform.LookAt(new Vector3(_targetPoint.x, transform.position.y, _targetPoint.y));
}
if (_lastTimeGo -_timeForIdle > Time.time)
{
transform.Translate(0,GetComponent<Rigidbody>().velocity.y*Time.deltaTime, _speed * Time.deltaTime);
}
}
}