RayCast далеко уходит

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

RayCast далеко уходит

Сообщение NeProUser 18 июн 2019, 19:45

И снова здравствуйте! в этот раз столкнулся со следующей проблемой: пытался сделать следующее - при отсутствии преграды спереди на расстоянии 1 объект при помощи NavMesh перемещается вперёд на 1, иначе если справа нет преграды на том же расстоянии - то идёт вправо и т.д. получилось примерно следующее:
Синтаксис:
Используется csharp
 public   LayerMask layer;
    public int MaxRay;
    public NavMeshAgent agent;
    // Start is called before the first frame update
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update()
    {
        RaycastHit hit;
        Debug.DrawRay(gameObject.transform.position, gameObject.transform.forward * MaxRay, Color.red);
        if (!Physics.Raycast(gameObject.transform.position + transform.up, gameObject.transform.forward, out hit, layer, MaxRay))
        {
         
            agent.SetDestination(new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z + 1));
        }
        else
        {
            Debug.Log(hit.distance);
            if (!Physics.Raycast(gameObject.transform.position + transform.up, gameObject.transform.right, out hit, layer, MaxRay))
            {

                agent.SetDestination(new Vector3(gameObject.transform.position.x + 1, gameObject.transform.position.y, gameObject.transform.position.z));
            }
            else
            {
                Debug.Log(hit.distance);
                if (!Physics.Raycast(gameObject.transform.position + transform.up, -gameObject.transform.right, out hit, layer, MaxRay))
                {

                    agent.SetDestination(new Vector3(gameObject.transform.position.x - 1, gameObject.transform.position.y, gameObject.transform.position.z));
                }
                else
                {
                    Debug.Log(hit.distance);
                }
            }
        }
    }


а теперь в чём проблема: при выставленной MaxRay на 1 луч уходит на расстояние в 20 с лишним. вопрос - что я делаю не так?
Очередной новичок
Аватара пользователя
NeProUser
UNIт
 
Сообщения: 121
Зарегистрирован: 29 апр 2018, 20:22

Re: RayCast далеко уходит

Сообщение ~AvA~ 18 июн 2019, 20:19

Как ты знаешь что он уходит на 20 и в Инспекторе сколько MaxRay выставлено?
Аватара пользователя
~AvA~
UNIверсал
 
Сообщения: 396
Зарегистрирован: 17 фев 2015, 13:09

Re: RayCast далеко уходит

Сообщение waruiyume 18 июн 2019, 20:48

Последние 2 параметра не перепутаны разве?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: RayCast далеко уходит

Сообщение NeProUser 18 июн 2019, 20:57

~AvA~ писал(а):Как ты знаешь что он уходит на 20 и в Инспекторе сколько MaxRay выставлено?

Debug.Log(hit.distance);
Очередной новичок
Аватара пользователя
NeProUser
UNIт
 
Сообщения: 121
Зарегистрирован: 29 апр 2018, 20:22

Re: RayCast далеко уходит

Сообщение NeProUser 18 июн 2019, 21:00

~AvA~ писал(а):Как ты знаешь что он уходит на 20 и в Инспекторе сколько MaxRay выставлено?

MaxRay выставлено на 1
Очередной новичок
Аватара пользователя
NeProUser
UNIт
 
Сообщения: 121
Зарегистрирован: 29 апр 2018, 20:22

Re: RayCast далеко уходит

Сообщение NeProUser 18 июн 2019, 21:07

waruiyume писал(а):Последние 2 параметра не перепутаны разве?


вы про layer и RayMax? Поменял, изменения есть, но всё ещё нужно доработать, СПАСИБО!
Очередной новичок
Аватара пользователя
NeProUser
UNIт
 
Сообщения: 121
Зарегистрирован: 29 апр 2018, 20:22


Вернуться в Почемучка

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

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