Страница 1 из 1

Nav Mesh Agent

СообщениеДобавлено: 14 фев 2018, 00:14
vovan1990
всем привет что я делаю не правильно что агент сначала следует за мной, а потом после проверки тупо прямо идет
Синтаксис:
Используется 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();
        }
       
        }
}
 

Re: Nav Mesh Agent

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

Re: Nav Mesh Agent

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

а с каких это пор агента нужно поворачивать к цели?

Re: Nav Mesh Agent

СообщениеДобавлено: 16 фев 2018, 11:34
Xtir
Синтаксис:
Используется 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.

Re: Nav Mesh Agent

СообщениеДобавлено: 16 фев 2018, 11:50
samana
Xtir писал(а):Разумнее будет сделать так. После Stop, агенту надо сделать Resume.

В вашем коде наоборот, resume выполняется во время ходьбы. Кстати, документация говорит, что метод resume устарел.