Суббота, 20 Апреля 2024, 03:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Управление NavMeshAgent
Управление NavMeshAgent
volosnya3223Дата: Четверг, 16 Ноября 2017, 19:53 | Сообщение # 1
уже был
Сейчас нет на сайте
На персонаже весит NavMeshAgent, мне нужно заставить его прыгнуть, и чтобы он находясь в воздухе, продолжал двигаться к цели. Я пытался использовать вот этот скрипт, но после нажатия пробела персонаж приостанавливается, а потом продолжает идти дальше. Если нажать пробел несколько раз то он подлетает вверх, но при этом не продолжает двигаться в сторону цели, и после того как он приземляется он уже не реагирует на пробел.
Код
    private NavMeshAgent agent;
        public LayerMask groundMask;
        private Rigidbody rb;

        public Transform target;
        public float jumpForce;
        public float groundRadius;
        public bool isGrounded;
        public Collider[] ground;
        

        void Start()
        {
                agent = GetComponent<NavMeshAgent>();

                agent.autoBraking = false;

                agent.destination = target.position;

        rb = GetComponent<Rigidbody>();
        }

        void Update()
        {
                ground = Physics.OverlapSphere(transform.position, groundRadius, groundMask);

                if (ground.Length == 0)
                {
            isGrounded = false;
                        agent.enabled = false;
                }
                else{
                        isGrounded = true;
                        agent.enabled = true;
                        agent.destination = target.position;
                }

                Jump();

        }

        void Jump()
        {
                if(Input.GetKeyDown(KeyCode.Space) && isGrounded)
                {
                        isGrounded = false;

            agent.enabled = false;

            rb.AddForce(transform.up * jumpForce, ForceMode.Impulse);
                        agent.velocity = rb.velocity;
                }
        }


Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Управление NavMeshAgent
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг