U3.5 PathFinding: проблема с CalculatePath

Общие вопросы о Unity3D

U3.5 PathFinding: проблема с CalculatePath

Сообщение Savalin 14 мар 2012, 18:37

Друзья!
Решил использовать built-in поиск пути (он мне понравился больше, чем мои реализации), и все классно работает за исключением одного момента...

В двух словах о сцене: есть модель помещения, для которой запечен NavMesh, есть стартовый и целевой ГО. От стартовой до целевой точки катится сфера (агент).

ПРОБЛЕМА
Если я ставлю агента на стартовую позицию и командую ему
Синтаксис:
Используется javascript
agent.SetDestination(target_point.transform.position);

то сфера прекрасно начинает катиться по маршруту.

Но как только я хочу просто получить маршрут (чтобы разобрать его на контрольные точки и реализовать движение по нему особым образом своим скриптом) - путь не находится (т.е. NavMeshPath.status = InvaidPath)

Вот код:
Синтаксис:
Используется javascript
        //ставим агента (сферу) на стартовую точку
        sphere.transform.position = start_point.transform.TransformPoint(Vector3.zero);
        //собственно ссылка на агента
        agent = sphere.GetComponent("NavMeshAgent");

        //если здесь написать
        //agent.SetDestination(target_point.transform.position);
        //а все, что ниже, стереть - то сфера успешно пойдет по маршруту

        //формируем машрут
        var navPath : NavMeshPath = new NavMeshPath();
        var pathFound : boolean   = agent.CalculatePath(target_point.transform.position, navPath);
        var pathCorners : Vector3[];

        if (pathFound)
        {
                print("PATH FOUND");
                pathCorners = navPath.corners;
                print(pathCorners.length);
               
        } else {
                print("NO WAY   "+navPath.status);
        }

 


В консоли имеем: NO WAY PathInvalid


В чем здесь может быть загвоздка?
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00

Re: U3.5 PathFinding: проблема с CalculatePath

Сообщение Savalin 15 мар 2012, 10:32

Похоже, что проблема не в кривых руках, а все же этот функционал еще не доработан..
Нашел пост с такой же проблемой на сайте англоязычных коллег -
http://forum.unity3d.com/threads/126033-NavMesh.CalculatePath()-is-not-working

И на данный момент там всего один ответ. Прямого решения пока видимо нет.
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00

Re: U3.5 PathFinding: проблема с CalculatePath

Сообщение DbIMok 15 мар 2012, 11:03

сделайте простой тест, отправьте багрепорт приложив к нему этот тест.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: U3.5 PathFinding: проблема с CalculatePath

Сообщение Belfegnar_ 15 мар 2012, 12:04

Хм.. у меня во всех сценах примера работает. :-?? Правда целевая точка должна быть точно на поверхности навмеша.
Кроме того, я где-то читал, что путь не всегда считается за один проход
Belfegnar_
UNIт
 
Сообщения: 112
Зарегистрирован: 22 ноя 2010, 14:08

Re: U3.5 PathFinding: проблема с CalculatePath

Сообщение Neodrop 15 мар 2012, 14:33

Чисто теоретическое предположение - у вас совпадает Y координата ? Не находится ли она ниже Y координат навмеша?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: U3.5 PathFinding: проблема с CalculatePath

Сообщение Savalin 15 мар 2012, 16:59

Neodrop писал(а):Чисто теоретическое предположение - у вас совпадает Y координата ? Не находится ли она ниже Y координат навмеша?

да в том-то и странность, что при одинаковых параметрах, SetDestination() путь находит, а CalculatePath() - нет :)
Но замечание хорошее.

Сейчас жмут сроки, поэтому пока сделал на костылях, но позже еще поэкспериментирую
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00

Re: U3.5 PathFinding: проблема с CalculatePath

Сообщение Savalin 15 мар 2012, 17:02

Belfegnar_ писал(а):Хм.. у меня во всех сценах примера работает. :-?? Правда целевая точка должна быть точно на поверхности навмеша.
Кроме того, я где-то читал, что путь не всегда считается за один проход

Да, за один кадр не успевает, и это я учитывал (использовал yield).
Сдается мне, что и вправду может проблема с небольшими отклонениями по оси Y.

Спасибо всем большое за ответы. Довольно исчерпывающе. Остальное, пожалуй, можно решить только экспериментами.
Savalin
UNец
 
Сообщения: 35
Зарегистрирован: 07 окт 2011, 11:00


Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: Google [Bot] и гости: 32