Nav Mesh Agent

Программирование на Юнити.

Nav Mesh Agent

Сообщение vovan1990 14 фев 2018, 00:14

всем привет что я делаю не правильно что агент сначала следует за мной, а потом после проверки тупо прямо идет
Синтаксис:
Используется csharp
 
public NavMeshAgent agent;
    private Transform player;
    public Animator animator;
        // Use this for initialization
        void Start () {
      player = GameObject.FindGameObjectWithTag("Player").transform;
        }
       
        // Update is called once per frame
        void Update () {
       
            animator.SetBool("Walk", true);
            agent.SetDestination(player.position);
       
    if(Vector3.Distance(transform.position, player.position) < 5f)
        {
            animator.SetBool("Walk", false);
            agent.Stop();
        }
       
        }
}
 
vovan1990
UNец
 
Сообщения: 9
Зарегистрирован: 13 фев 2017, 18:07

Re: Nav Mesh Agent

Сообщение Yaro 14 фев 2018, 02:26

С табуляцией такая какофония, что читать не возможно.
А где в апдейте agent.transform.LookAt(player.position); ?
никаких строк на тему поворота к плееру я не наблюдаю, одни анимации агента.
Yaro
UNIт
 
Сообщения: 86
Зарегистрирован: 20 сен 2016, 21:44

Re: Nav Mesh Agent

Сообщение Xtir 16 фев 2018, 11:29

Yaro писал(а):С табуляцией такая какофония, что читать не возможно.
А где в апдейте agent.transform.LookAt(player.position); ?
никаких строк на тему поворота к плееру я не наблюдаю, одни анимации агента.

а с каких это пор агента нужно поворачивать к цели?
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Nav Mesh Agent

Сообщение Xtir 16 фев 2018, 11:34

Синтаксис:
Используется csharp
 

        public NavMeshAgent agent;
    private Transform player;
    public Animator animator;
        // Use this for initialization
        void Start () {
      player = GameObject.FindGameObjectWithTag("Player").transform;
        }
       
        // Update is called once per frame
        void Update () {
       
                if(Vector3.Distance(transform.position, player.position) < 5f)
                {
                        animator.SetBool("Walk", false);
                        agent.Stop();
                }
                else
                {
                        animator.SetBool("Walk", true);
                        agent.SetDestination(player.position);
                        agent.Resume();
                }
       
        }
 
[/quote]
Разумнее будет сделать так. После Stop, агенту надо сделать Resume.
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Nav Mesh Agent

Сообщение samana 16 фев 2018, 11:50

Xtir писал(а):Разумнее будет сделать так. После Stop, агенту надо сделать Resume.

В вашем коде наоборот, resume выполняется во время ходьбы. Кстати, документация говорит, что метод resume устарел.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5