Войти
Unreal EngineФорумПрограммирование

UE4 поиск путей

#0
12:09, 15 дек. 2015

Все привет. Кто-нить сталкивался с тем, что путь ищется не в нужную точку, а рядом с ней, даже если между нужным и найденным местами лежит стена:
Изображение
??


#1
12:30, 15 дек. 2015

BingoBongo
Как ищешь? У меня вот монстры двигаются между TargetPoint-ами, либо идут к игроку, если он достаточно близко. Практика достаточно примитивная, конечно, но тоже кое-что.

#2
12:52, 15 дек. 2015

Вот так:

  ANavigationData* pNavigationData = GetWorld()->GetNavigationSystem()->GetNavDataForProps(GetController()->GetNavAgentPropertiesRef());
  FNavigationQueryFilter* NavigationFilter = new FNavigationQueryFilter();
  NavigationFilter->SetFilterImplementation(pNavigationData->GetDefaultQueryFilterImpl());
  if (targetMode == EM_STATIC)
    Cast<UNavQueryFilterStatic>(UNavQueryFilterStatic::StaticClass()->GetDefaultObject())->InitializeFilter(pNavigationData, NavigationFilter);
  else
    Cast<UNavQueryFilterDynamic>(UNavQueryFilterDynamic::StaticClass()->GetDefaultObject())->InitializeFilter(pNavigationData, NavigationFilter);
  SharedNavigationFilter = TSharedPtr<const FNavigationQueryFilter>(NavigationFilter);

        FPathFindingQuery query;
        query = FPathFindingQuery(
          GetController(),
          *pNavigationData,
          GetActorLocation(),
          optimalLocation,    //точка, куда надо пройти
          SharedNavigationFilter);

        FNavPathQueryDelegate queryDelegate;
        queryDelegate.BindRaw(this, &CBehMoveLow::OnFindPath);

        findRequestId = GetWorld()->GetNavigationSystem()->FindPathAsync(GetNavAgentPropertiesRef(), query, queryDelegate, EPathFindingMode::Hierarchical);
        state = ES_SEARCH;

Unreal EngineФорумПрограммирование

Тема в архиве.