C++和藍圖各自有各自的痛點,真希望UE4能夠在二者之間再增加一種腳本語言,那就完美了。目前的話,C++和藍圖結合的開發方式應該算是最佳實踐了
這個簡單的例子,體現了UE4 中C++和藍圖的合作方式
- C++側重於宏觀以及複雜邏輯的實現
- 藍圖側重於數據配置 以及一些簡單的邏輯
效果圖
1. 用C++實現一個AMyActor類
//AMyActor.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"
UCLASS()
class GAMECPP_API AMyActor : public AActor
{
GENERATED_BODY()
public:
AMyActor();
protected:
UPROPERTY(EditAnywhere,BlueprintReadWrite)
class UStaticMeshComponent* StaticMesh;
};
//AMyActor.cpp
#include "MyActor.h"
AMyActor::AMyActor()
{
PrimaryActorTick.bCanEverTick = false;
this->RootComponent = StaticMesh;
StaticMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh"));
}