C++和蓝图各自有各自的痛点,真希望UE4能够在二者之间再增加一种脚本语言,那就完美了。目前的话,C++和蓝图结合的开发方式应该算是最佳实践了 这个简单的例子,体现了UE4 中C++和蓝图的合作方式
- C++侧重于宏观以及复杂逻辑的实现
- 蓝图侧重于数据配置 以及一些简单的逻辑
步骤
1. 用C++实现一个AMyActor类
- 效果图
- 1. 用C++实现一个AMyActor类
- 2. 用蓝图继承AMyActor类
- 3. 在蓝图中把模型赋予StaticMesh,也可以实现一些简单的逻辑
//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(TEXT("StaticMesh"));
}
2. 用蓝图继承AMyActor类