| 
| 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 |  |  |  |  |