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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python17 129
  • Облачные технологии14 088
  • QA вакансии3 457
  • Backend вакансии2 115
  • Инженер данных1 805
  • Продакт-менеджер1 262

Разработка

  • Android1 865
  • iOS1 698
  • Fullstack вакансии989
  • AI вакансии949
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 660
  • Java6 550
  • Node.js2 020
  • .NET1 722
  • Kotlin1 619
  • Rust1 455
  • C#711
  • PHP683
  • C++572

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

  • Kubernetes7 769
  • DevOps вакансии6 056
  • Linux-инфраструктура5 493
  • Terraform / IaC4 266
  • CI/CD3 250
  • Мониторинг и Observability1 788
  • SRE567
  • Кибербезопасность453

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

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

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

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

По регионам

  • Вакансии в США44 281
  • Вакансии в Европе23 875
  • Вакансии в Канаде4 475
  • Работа в России3 922

По формату

  • Удалённые вакансии75 035
  • Релокация в США44 281
  • Гибридная работа12 401
  • Офисная работа7 079

По уровню

  • Senior вакансии42 679
  • Middle вакансии20 894
  • Junior вакансии6 722

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

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

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

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

Что такое макросы UPROPERTY и UFUNCTION и какие параметры они поддерживают?

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

UPROPERTY регистрирует поле для GC, редактора, Blueprint и сериализации; UFUNCTION регистрирует метод для Blueprint, RPC и рефлексии. Оба поддерживают десятки параметров-спецификаторов, управляющих видимостью и поведением.

Спецификаторы UPROPERTY

  • EditAnywhere — редактируется в экземплярах и Blueprint-дефолтах.
  • EditDefaultsOnly — только в CDO (Class Default Object), не в экземплярах.
  • EditInstanceOnly — только в размещённых экземплярах.
  • VisibleAnywhere / VisibleDefaultsOnly — показать без редактирования.
  • BlueprintReadWrite / BlueprintReadOnly — доступность в Blueprint-графах.
  • Replicated — реплицировать по сети клиентам.
  • ReplicatedUsing=OnRep_FieldName — вызвать функцию при получении репликации.
  • Transient — не сериализовать (не сохранять в .uasset / сейв-файл).
  • SaveGame — включить в сейв через USaveGame.
  • Config — читать значение из .ini файла.
  • Category="Name" — группировка в деталях редактора.
UCLASS()
class AMyCharacter : public ACharacter
{
    GENERATED_BODY()
public:
    // Редактируется везде, доступно в BP, реплицируется
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Replicated, Category="Stats")
    float Health = 100.f;

    // Только в дефолтах, только чтение в BP
    UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Config")
    float MaxHealth = 100.f;

    // Реплицированное с callback
    UPROPERTY(ReplicatedUsing=OnRep_Health)
    float SyncedHealth;

    UFUNCTION()
    void OnRep_Health();

    // Не сохраняется, не сериализуется
    UPROPERTY(Transient)
    UParticleSystemComponent* SpawnFX;
};

Макрос UPROPERTY

UPROPERTY сообщает системе рефлексии UE о поле класса. Без него GC не видит указатель на UObject, поле не появляется в редакторе и не сериализуется.

Макрос UFUNCTION

UFUNCTION регистрирует метод в системе рефлексии: Blueprint может его вызвать, система сети генерирует RPC-обёртки, рефлексия позволяет вызывать по имени.

Спецификаторы UFUNCTION

  • BlueprintCallable — вызываемая из BP нода с execution pin.
  • BlueprintPure — без side-effect, нет execution pin (как геттер).
  • BlueprintImplementableEvent — объявлена в C++, реализуется в BP.
  • BlueprintNativeEvent — реализация по умолчанию в C++ (_Implementation), переопределяемая в BP.
  • Server, Reliable/Unreliable — RPC, выполняется на сервере.
  • Client, Reliable/Unreliable — RPC, выполняется на клиенте-владельце.
  • NetMulticast, Reliable/Unreliable — RPC на всех клиентах и сервере.
  • CallInEditor — кнопка вызова прямо из деталей редактора.
  • Exec — вызов из консоли командой имя функции.
UCLASS()
class AMyPlayerController : public APlayerController
{
    GENERATED_BODY()
public:
    // Вызов из BP
    UFUNCTION(BlueprintCallable, Category="Input")
    void StartSprinting();

    // Геттер в BP без execution pin
    UFUNCTION(BlueprintPure, Category="Stats")
    float GetHealthPercent() const { return Health / MaxHealth; }

    // RPC: клиент вызывает на сервере
    UFUNCTION(Server, Reliable)
    void ServerFire(FVector_NetQuantize Origin, FVector_NetQuantize Direction);

    // Реализация RPC (обязательный суффикс _Implementation)
    void ServerFire_Implementation(
        FVector_NetQuantize Origin, FVector_NetQuantize Direction);

    // Событие BP реализует — C++ только объявляет
    UFUNCTION(BlueprintImplementableEvent, Category="Events")
    void OnLevelUp(int32 NewLevel);

    // Консольная команда: MyExecCmd в консоли
    UFUNCTION(Exec)
    void MyExecCmd();
private:
    float Health = 100.f;
    float MaxHealth = 100.f;
};

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

  • BlueprintCallable на const-методе без BlueprintPure: const-метод в BP появится с execution pin; если нет side-effect — добавьте BlueprintPure для чистого геттера.
  • Отсутствие _Implementation у RPC: компилятор UHT генерирует декларацию _Implementation, но если вы её не определите — ошибка линковки с нечитаемым сообщением.
  • Replicated без GetLifetimeReplicatedProps: каждое поле с Replicated требует записи в GetLifetimeReplicatedProps через DOREPLIFETIME; без этого поле не реплицируется и нет предупреждения.
  • EditAnywhere на массиве UObject-указателей без UPROPERTY GC-спецификатора: поле и так попадает в GC через UPROPERTY, но если указатель не в UPROPERTY — редактор может отображать ссылку, а GC всё равно уничтожит объект.
  • Config без ini-раздела: поле с Config читает из ini только если в UCLASS указан Config=Game (или другой ini-файл); без этого значение игнорируется.
  • BlueprintImplementableEvent без реализации в BP: если BP-субкласс не реализовал событие, вызов из C++ просто ничего не делает — нет предупреждения в рантайме.
  • UFUNCTION(Exec) на не-APlayerController: Exec работает только на APlayerController, ACheatManager, AGameMode и AGameState; на других классах команда не регистрируется в консоли.

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

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

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

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

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

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

Источники

  • https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-object-handling-in-unreal-engine
←Предыдущий вопросВ каких проектах Unreal Engine оправдан, а где он становится источником лишней сложности?Следующий вопрос→Что такое сборщик мусора (garbage collector) в Unreal Engine и как предотвратить уничтожение объектов?

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

Unreal Engineasset-pipelinegameplay-architectureperformance-debugging

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

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