Всем привет!
Сейчас разбираю VRE плагин и частично переношу код в свой пет проект.
наткнулся на использование #UE_INLINE_GENERATED_CPP_BY_NAME(YourClass_name)
Ранее ни в одном курсе об этом не слышал, поэтому напишу от себя.
Если вы разрабатываете VR-проекты на Unreal Engine 5.1 или новее, то наверняка стоит использовать макрос UE_INLINE_GENERATED_CPP_BY_NAME(FileNameClass). Этот макрос напрямую и упрощает жизнь при компиляции и линковке.
Как пользоваться? Убедитесь, что у вас Unreal Engine 5.1+
Пример h файл
cpp файл
Преимущества использования UE_INLINE_GENERATED_CPP_BY_NAME:
1. Уменьшение количества файлов для компиляции
Ранее каждый .gen.cpp файл компилировался отдельно, что увеличивало общее количество файлов, обрабатываемых компилятором. Инлайнинг этих файлов с помощью макроса снижает общее количество компилируемых единиц, что может ускорить процесс сборки.
2. Совместимость с инструментами разработки
Некоторые IDE, такие как JetBrains Rider, добавили поддержку этого макроса, обеспечивая корректную работу с исходным кодом Unreal Engine.
Сейчас разбираю VRE плагин и частично переношу код в свой пет проект.
наткнулся на использование #UE_INLINE_GENERATED_CPP_BY_NAME(YourClass_name)
Ранее ни в одном курсе об этом не слышал, поэтому напишу от себя.
Если вы разрабатываете VR-проекты на Unreal Engine 5.1 или новее, то наверняка стоит использовать макрос UE_INLINE_GENERATED_CPP_BY_NAME(FileNameClass). Этот макрос напрямую и упрощает жизнь при компиляции и линковке.
Как пользоваться? Убедитесь, что у вас Unreal Engine 5.1+
Пример h файл
// MyActor.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"
UCLASS()
class MYVRPROJECT_API AMyActor : public AActor
{
GENERATED_BODY()
public:
AMyActor();
...
};
cpp файл
// MyActor.cpp
#include "MyActor.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(MyActor)
#include "XRMotionControllerBase.h" //чисто для примера
#include и другие подключения
AMyActor::AMyActor()
{
PrimaryActorTick.bCanEverTick = false;
...
}
Преимущества использования UE_INLINE_GENERATED_CPP_BY_NAME:
1. Уменьшение количества файлов для компиляции
Ранее каждый .gen.cpp файл компилировался отдельно, что увеличивало общее количество файлов, обрабатываемых компилятором. Инлайнинг этих файлов с помощью макроса снижает общее количество компилируемых единиц, что может ускорить процесс сборки.
2. Совместимость с инструментами разработки
Некоторые IDE, такие как JetBrains Rider, добавили поддержку этого макроса, обеспечивая корректную работу с исходным кодом Unreal Engine.
👍2🔥1