Grimerdie | Дата: Пятница, 27 Июня 2014, 17:22 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Сделал патрулирование территории таким образом: противник постоянно поворачивается, как только его рей контактирует с вейпоинтом, который идет по порядку, противник перестает поворачиваться и идет на вейпоинт, а потом все по новый. И все бы ничего, но т.к. хотел запилить максимальную удобность при последующем использовании - вейпоинты сделанны массивом, поэтому когда противник достигает последнего вейпоинта, происходит проверка, и если это - последний вейпоинт, то текущая вейпоинт-цель сбрасывается на самую первую (т.е. на ноль), и персонаж должен идти на нее. Но вот незадача - если я сбрасываю цель в нулевой вейпоинт, то противник продолжает вращаться, не имея возможности найти его, хотя если поставить не нулевой вейпоинт массива, а например первый, то он спокойно пинается реем об него и идет. Т.к. пытаюсь добиться максимальной удобности, то мне такой расклад не подходит, поэтому прошу вашей помощи, что здесь не так:
Код: Цитата var walkSpeed : float = 1.5f; var rotateSpeed : float = 15.0f; var waypointDetection : boolean; var playerDetection : boolean; var waypoint : GameObject[] ; var currentWaypoint : int = 0; var lastWaypoint : int;
function Update () {
var ray = new Ray(transform.position,transform.forward); var hit : RaycastHit; var target : Vector3 = waypoint[currentWaypoint].transform.position; var moveDirection : Vector3 = target - transform.position;
if (Physics.Raycast(ray, hit, 10)) {
if(hit.collider == waypoint[currentWaypoint].collider) {
waypointDetection = true; transform.position = Vector3.MoveTowards(transform.position,waypoint[currentWaypoint].transform.position,walkSpeed * Time.deltaTime);
} } if(waypointDetection == false) { transform.Rotate(Vector3.up * Time.deltaTime * rotateSpeed); }
if(moveDirection.magnitude < 1) { waypointDetection = false; currentWaypoint++;
} if(lastWaypoint == currentWaypoint) currentWaypoint = 0;
}
Сообщение отредактировал Grimerdie - Пятница, 27 Июня 2014, 17:23 |
|
| |