Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 472новые вакансии за сутки·93 728вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 267
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 402 кандидата открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 124
  • Облачные технологии14 081
  • QA вакансии3 459
  • Backend вакансии2 116
  • Инженер данных1 804
  • Продакт-менеджер1 264

Разработка

  • Android1 866
  • iOS1 701
  • Fullstack вакансии988
  • AI вакансии952
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 662
  • Java6 548
  • Node.js2 019
  • .NET1 722
  • Kotlin1 619
  • Rust1 454
  • C#711
  • PHP683
  • C++571

DevOps и инфраструктура

  • Kubernetes7 766
  • DevOps вакансии6 053
  • Linux-инфраструктура5 491
  • Terraform / IaC4 262
  • CI/CD3 242
  • Мониторинг и Observability1 787
  • SRE567
  • Кибербезопасность453

Аналитика и данные

  • Data Scientist1 140
  • Бизнес-аналитик927
  • Аналитик данных854
  • Системный аналитик153

Другие направления

  • Проджект-менеджер615
  • UI/UX дизайн146
  • Ручное тестирование14

По регионам

  • Вакансии в США44 297
  • Вакансии в Европе23 854
  • Вакансии в Канаде4 476
  • Работа в России3 921

По формату

  • Удалённые вакансии75 046
  • Релокация в США44 297
  • Гибридная работа12 398
  • Офисная работа7 076

По уровню

  • Senior вакансии42 676
  • Middle вакансии20 894
  • Junior вакансии6 725

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме Unreal EngineВсе вопросы
Unreal EngineMiddleТеория

В чём разница между LineTrace, SweepTrace и OverlapTest?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

LineTrace проверяет пересечение луча с геометрией; SweepTrace — объёмного тела (капсула/сфера/бокс) вдоль луча; OverlapTest проверяет пересечение фигуры с геометрией в точке без движения.

LineTrace (лучевое тестирование)

Бросает бесконечно тонкий луч из точки A в точку B и возвращает первое (или все) пересечения с физическими коллайдерами. Используется для проверки видимости, попадания пули, прицеливания.

// LineTraceSingleByChannel — первое попадание
FHitResult Hit;
FVector Start = GetActorLocation();
FVector End   = Start + GetActorForwardVector() * 5000.f;

bool bHit = GetWorld()->LineTraceSingleByChannel(
    Hit, Start, End,
    ECC_Visibility, // канал коллизии
    FCollisionQueryParams(TEXT("ShootTrace"), true, this) // игнорировать себя
);

if (bHit)
{
    UE_LOG(LogTemp, Log, TEXT("Hit: %s at %s"),
        *Hit.GetActor()->GetName(),
        *Hit.ImpactPoint.ToString());
}

// LineTraceMultiByChannel — все попадания
TArray<FHitResult> Hits;
GetWorld()->LineTraceMultiByChannel(Hits, Start, End, ECC_Visibility);

SweepTrace (объёмное тестирование)

Перемещает фигуру (сфера, капсула, бокс) вдоль луча и возвращает первое/все столкновения. Используется для ближнего боя (атаки с объёмом), движения персонажа, проверки прохождения через проём.

FHitResult SweepHit;
FCollisionShape Sphere = FCollisionShape::MakeSphere(50.f);

bool bSweepHit = GetWorld()->SweepSingleByChannel(
    SweepHit,
    Start,
    End,
    FQuat::Identity,
    ECC_Pawn,
    Sphere,
    FCollisionQueryParams(TEXT("MeleeTrace"), false, this)
);

if (bSweepHit && SweepHit.GetActor())
{
    // Нанести урон
}

// Капсула (типична для персонажей)
FCollisionShape Capsule = FCollisionShape::MakeCapsule(34.f, 88.f);
GetWorld()->SweepSingleByObjectType(
    SweepHit, Start, End, FQuat::Identity,
    FCollisionObjectQueryParams(ECC_Pawn), Capsule);

OverlapTest (тест перекрытия)

Проверяет, пересекается ли фигура в заданной точке с другими коллайдерами. Нет движения, нет точки удара. Используется для зоны взрыва, детекции врагов вокруг, триггер-зон.

TArray<FOverlapResult> Overlaps;
FCollisionShape ExplosionSphere = FCollisionShape::MakeSphere(300.f);
FCollisionQueryParams Params(TEXT("ExplosionOverlap"), false, this);
FCollisionObjectQueryParams ObjParams;
ObjParams.AddObjectTypesToQuery(ECC_Pawn);

bool bAny = GetWorld()->OverlapMultiByObjectType(
    Overlaps,
    GetActorLocation(), // центр
    FQuat::Identity,
    ObjParams,
    ExplosionSphere,
    Params
);

for (const FOverlapResult& Overlap : Overlaps)
{
    if (AActor* Target = Overlap.GetActor())
    {
        // Нанести урон взрывом
    }
}

Сравнение методов

  • LineTrace — самый дешёвый; используйте для оружия дальнего боя и лучей видимости.
  • SweepTrace — дороже LineTrace пропорционально сложности фигуры; используйте для ближнего боя и движения.
  • OverlapTest — проверка без направления; используйте для взрывов, поиска ближайших врагов, зон.

Подводные камни

  • Неправильный канал коллизии: ECC_Visibility и ECC_Camera игнорируют объекты с NoCollision; для попаданий по персонажам используйте ECC_Pawn или кастомный канал.
  • bTraceComplex = false по умолчанию: трасса идёт по упрощённой (LoD) коллизии; для точных попаданий по мешу задайте bTraceComplex = true в FCollisionQueryParams.
  • Start == End: нулевая длина луча вернёт false без ошибки; всегда проверяйте, что вектор ненулевой.
  • Не добавлен ActorsToIgnore: без игнорирования себя трасса сразу попадает в собственный коллайдер актора.
  • SweepTrace с большой капсулой на высокой скорости: туннелинг невозможен при Sweep, но большая фигура + медленный тик даёт артефакты прохождения сквозь тонкие стены — уменьшайте размер фигуры или используйте Continuous Collision Detection.
  • OverlapTest возвращает один и тот же Actor несколько раз: если у Actor несколько компонентов с коллизией — будет несколько FOverlapResult с одним Actor; не забудьте дедуплицировать.

Типичные ошибки

  • Объяснять LineTrace, SweepTrace и OverlapTest только по синтаксису, без жизненного цикла и стоимости.
  • Игнорировать ошибки, null/empty состояния, порядок инициализации или режим сборки.
  • Давать пример, который работает в демо, но ломается при изменении владельца ресурса.
  • Использовать макросы или specifier-и наугад и забывать про UObject GC.

Что проверяет интервьюер

  • Кандидат формулирует точную модель для LineTrace, SweepTrace и OverlapTest, а не только определение.
  • Пример компилируем, безопасен по lifetime и соответствует версии технологии.
  • Названы trade-off, ограничения и диагностируемые симптомы ошибки.
  • Понимает границу между C++ кодом, runtime/framework metadata и editor/UI слоем.

Как вы знаете этот вопрос?

Проверить себя по теме Unreal Engine →

Источники

  • https://dev.epicgames.com/documentation/en-us/unreal-engine/traces-in-unreal-engine
←Предыдущий вопросВ чём разница между `TArray`, `TMap` и `TSet` в Unreal Engine?Следующий вопрос→Что такое delegates в Unreal Engine и чем они отличаются от стандартных delegates в C++?

Связанные темы

Unreal Engineasset-pipelinegameplay-architectureperformance-debugging

Частые вопросы на собеседовании

  • В каких проектах Unreal Engine оправдан, а где он становится источником лишней сложности?
  • Что такое макросы UPROPERTY и UFUNCTION и какие параметры они поддерживают?
  • Что такое сборщик мусора (garbage collector) в Unreal Engine и как предотвратить уничтожение объектов?
  • В чём разница между GameMode, GameState, PlayerController и PlayerState?