Возникла проблема с перемещением объекта по заданным точкам, объект доходит до 1ой и останавливается, терейн с рельефом, на объекте весит бокс колайдер.
Код
using UnityEngine; using System.Collections;
public class MonsterAi : MonoBehaviour { Animator animator; NavMeshAgent agent; GameObject player; public float visible = 10f, timer; private float rasp = 1, flon; public GameObject gamer, fl, GameOver, kamera, kameraGameOver; //public AudioSource source; // public AudioClip Sound; private bool st1; public GameObject poz1, poz2, poz3, poz4, poz5, poz6;
сначала вы пишете "agent.destination = poz1.transform.position;" далее if(agent.destination == poz1.transform.position) agent.destination = poz2.transform.position;//а чему равен agent.destination, ага "agent.destination = poz1.transform.position;", значит присваиваем ему значение "poz2.transform.position" идем дальше... проходим всю цепочку if (agent.destination == poz2.transform.position) agent.destination = poz3.transform.position; if (agent.destination == poz3.transform.position) agent.destination = poz4.transform.position; if (agent.destination == poz4.transform.position) agent.destination = poz5.transform.position; if (agent.destination == poz5.transform.position) agent.destination = poz6.transform.position;
вплоть до
if (agent.destination == poz6.transform.position) agent.destination = poz1.transform.position; т.е. agent.destination = poz1.transform.position; именно тому, что вы установили в первой строке процитированного мной кода
т.е. все эти if'ы не нужны, так... мракобесие, достаточно было первой строки "agent.destination = poz1.transform.position;"
пересмотрите логику посмотрите связку if else
Добавлено (14 мая 2016, 16:33) --------------------------------------------- у вас всегда agent.destination = poz1.transform.position;