Unreal Engine C++ Course
PatreonBoostyTelegramYoutube
  • О курсе
  • Ссылки
    • Git
    • Visual Studio
    • Unreal Engine
  • Глоссарий
    • Общие понятия
    • Код / C++
      • Const correctness
      • Использование auto
    • Код / Best practices
    • Анимации
    • UI
    • VFX
    • AI
  • Unreal Editor Hotkeys
  • Visual Studio Hotkeys
  • Console commands
  • Проблемы и решения
    • IntelliSense тормозит
    • Проект не компилируется
    • Не вижу репозиторий ShootThemUp
    • Класс не отображается в Solution Explorer
    • Не работает Apply Damage
    • Где взять текстуры интерфейса
    • Нет контекстного меню UE при клике правой кнопкой мыши на файле .uproject
    • Ошибка Unable to start program
  • Вопросы и ответы
    • Зачем вступать в организацию EpicGames на Github
    • Можно ли проходить курс на UE5
    • Как перегенерировать файлы проекта
    • Насколько сильно влияет кол-во инклюдов на работу кода
    • На сколько большие могут быть структуры и таблицы
    • Медленный ли Cast
    • Что такое интерфейсы
    • Как работает код с переопределением GetMaxSpeed
    • Hit Reaction Animation
  • Дополнения к урокам
    • Лекция 065
      • Additive animation при приземлении
      • Блокировка стрельбы при беге
    • Лекция 079
      • Пикап видим после начисления патронов
      • Пикап не подбирается, если боекомплект расходуется в точке респауна пикапа
    • Лекция 089
      • NiagaraSystem не аттачится к дулу
    • Лекция 148
    • Лекция 155
  • Как задавать вопрос
  • Что почитать
  • UE5
  • Automation
    • Форматирование кода
  • VPN
  • 👨‍🎓мои курсы
    • 🧪Автоматизация и тестирование в Unreal Engine
    • 🐍Snake game
  • 🔗lifeexe сообщество
    • Поддержать проект
    • Ресурсы
    • Проекты участников сообщества
    • Code review участников сообщества
Powered by GitBook
On this page

Was this helpful?

  1. Вопросы и ответы

Медленный ли Cast

PreviousНа сколько большие могут быть структуры и таблицыNextЧто такое интерфейсы

Last updated 2 years ago

Was this helpful?

Я слышал, что касты работают медленно и нельзя их использовать так ли это?

1. Cast не самое первое о чем бы я переживал по поводу оптимизации (хотя если у вас на Tick происходит Cast в цикле 1000 акторов, стоит задуматься сразу)

2. Если можно написать код не используя Cast - надо это делать.

3. В Unreal Engine не получится совсем обойтись без Cast. Многие функции фреймворка возвращают указатели на базовые классы поэтому, чтобы получить специфическую функциональность наших классов, придется делать Cast.

4. Один из методов как можно оптимизировать: в функциях инициализации классов или BeginPlay сделать касты один раз и записать всё в указатели (если это имеет смысл). В нашем проекте это можно сделать в некоторых компонентах, где мы, например, используем GetOwner (также это можно сделать с помощью умных указателей, про них можно почитать по ).

5. Если реальные проблемы возникают и есть подозрения, что узкое место - это касты, то нужно профайлером замерять, искать причину.

6. Дополнительно можно почитать:

а).

Глава про касты №27. Это по чистому C++, но все равно полезно. Цитата:

Good C++ uses very few casts, but it’s generally not practical to get rid of all of them.

б).

ссылке
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ | Майерс Скотт
Статья про то, как работает Cast в Unreal Engine