К основному контенту

Blueprints и C++. Часть 3.

После того как в прошлых частях, с помощью языка программирования С++, был создан класс актера с задуманным внешним видом и функционалом, настала пора разобраться как его использовать в блупринтах Unreal Engine 4.

Создам класс блупринта, который будет расширять мой ранее созданный С++ класс. Назову его BrokenBP.


Так как я не добавлял никакие функции или свойства, через которые в блупритах можно было бы изменять объект, то доступ к настройкам закрыть. Зато в панели компонентов есть список всех добавленных в С++ компонентов. Они с пометкой (Inherited), что означает, что они были созданы в С++, а не добавлены через редактор в движке.


В целом лучше и быстрее будет создавать указатели на компоненты в классе С++, и назначать их в редакторе или блупринтах. Т.е. не искать меш по строке в конструкторе класса, а выбрать его вручную в редакторе из специального списка. Но весь проект был создан только на С++ для того чтобы научиться работать с игровым движком через код.

Комментарии

Популярные сообщения из этого блога

Обработка событий Unreal Engine через виртуальные функции.

Пример взят из книги "Unreal Engine scripting with C++ Cookbook". Некоторые классы Actor и Component поддерживают обработчики событий в виде виртуальных функций. Здесь будет показано как реализовать собственный обработчик события столкновения. Как это сделать... Создать в редакторе Unreal Engine пустой С++ класс Actor и назвать его  MyTriggerVolume . Добавить в заголовочный файл этого класса следующий код: UPROPERTY() UBoxComponent* TriggerZone; UFUNCTION() virtual void NotifyActorBeginOverlap(AActor* OtherActor) override; UFUNCTION() virtual void NotifyActorEndOverlap(AActor* OtherActor) override; А в файл cpp реализацию функций: void AMyTriggerVolume::NotifyActorBeginOverlap(AActor * OtherActor) { GEngine->AddOnScreenDebugMessage(-1, 1, FColor::Red, FString::Printf(TEXT("%s entered me"), *(OtherActor->GetName()))); } void AMyTriggerVolume::NotifyActorEndOverlap(AActor * OtherActor) { GEngine->AddOnScreenDebugMessage(-1, 1, FColor::R...

Привет миру из Unreal Engine 4 на C++. Часть 2.

В прошлой части был создан класс актера для представления в игровом мире шара и надписи, в него добавлены  компоненты коллизии и меша. В этой части к классу актера будет добавлены компонент с эффектом огня и компонент для вывода текста. Также будут реализован делегат и события, чтобы добавить интерактивности огненному шару. А для того, чтобы шар выглядел как металлический, ему будет назначен соответствующий материал. Все эти шаги будет проделаны на С++. Добавление компонента с эффектом огня  UParticleSystemComponent . Добавления этого компонента происходит подобно  UStaticMeshComponent . Запишу в конструктор моего объекта следующий код: // Create the fire particle system UParticleSystemComponent* FireParticles = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("FireParticles")); FireParticles->SetupAttachment(SphereVisual); FireParticles->bAutoActivate = true; // Assign fire particle system to component ConstructorHelpers::FObjectFinder<UPartic...