Unreal C++ Skill
C++ programming for Unreal Engine development.
Overview
This skill provides capabilities for implementing Unreal Engine gameplay and systems using C++, including the reflection system, macros, and engine integration.
Capabilities
UCLASS System
- Implement UCLASS macros
- Handle UPROPERTY specifiers
- Create UFUNCTION methods
- Manage USTRUCT types
Memory Management
- Use smart pointers
- Handle garbage collection
- Manage object lifecycles
- Implement weak references
Engine Integration
- Create Actor classes
- Implement Components
- Handle Subsystems
- Create Plugins
Blueprint Exposure
- Expose C++ to Blueprint
- Handle BlueprintCallable
- Implement BlueprintNativeEvent
- Create Blueprint Function Libraries
Prerequisites
- Unreal Engine 5.0+
- Visual Studio 2022 / Rider
- C++ programming knowledge
Usage Patterns
Actor Class
UCLASS()
class MYGAME_API AMyCharacter : public ACharacter
{
GENERATED_BODY()
public:
AMyCharacter();
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
float Health = 100.f;
UFUNCTION(BlueprintCallable, Category = "Combat")
void TakeDamage(float Damage);
protected:
virtual void BeginPlay() override;
virtual void Tick(float DeltaTime) override;
};
Component
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class MYGAME_API UHealthComponent : public UActorComponent
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintAssignable)
FOnHealthChanged OnHealthChanged;
UFUNCTION(BlueprintCallable)
void ModifyHealth(float Delta);
private:
UPROPERTY(EditDefaultsOnly)
float MaxHealth = 100.f;
float CurrentHealth;
};
Best Practices
- Use UPROPERTY for GC visibility
- Forward declare where possible
- Use interfaces for decoupling
- Profile with Unreal Insights
- Follow Unreal coding standards