创建基于UE4父类的代码
- UCLASS()
- class VR_API ALoadStreamingLevelActor : public AActor
- {
- GENERATED_BODY()
-
- public:
-
- ALoadStreamingLevelActor();
-
-
- virtual void BeginPlay() override;
-
-
- virtual void Tick( float DeltaSeconds ) override;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LoadedLevelName)
- FName LevelName;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LoadedLevelName)
- FName PackageName;
- };
默认情况下上边的UCLASS() 宏同下图中UCLASS(Blueprintable)的作用是一样的。这样声明的类在UE4中是可以创建基于此类的蓝图子类。
![](https://img-blog.csdn.net/20170113161128547?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlfbml1bml1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
如果不想让C++类能创建蓝图子类,则只需把 Blueprintable 替换为NotBlueprintable。修改代码如下
- UCLASS(NotBlueprintable)
- class VR_API ALoadStreamingLevelActor : public AActor
- {
- GENERATED_BODY()
-
- public:
-
- ALoadStreamingLevelActor();
-
-
- virtual void BeginPlay() override;
-
-
- virtual void Tick( float DeltaSeconds ) override;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LoadedLevelName)
- FName LevelName;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LoadedLevelName)
- FName PackageName;
- };
修改编译完后,在UE4中就无法创建基于此C++的蓝图子类了
在UCLASS()宏参数中还有一个名为NotBlueprintType的宏,这个宏的意思是在蓝图中无法创建基于此c++类的变量。而基于此C++类的蓝图子类则不受此限制。
代码和效果如下
- UCLASS(Blueprintable, NotBlueprintType)
- class VR_API ALoadStreamingLevelActor : public AActor
- {
- GENERATED_BODY()
-
- public:
-
- ALoadStreamingLevelActor();
-
-
- virtual void BeginPlay() override;
-
-
- virtual void Tick( float DeltaSeconds ) override;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LoadedLevelName)
- FName LevelName;
-
- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = LoadedLevelName)
- FName PackageName;
- };
此时ALoadStreamingLevel类是搜索不到的
EditAnyWhere: 此成员变量在蓝图编辑器中和关卡细节面板中都会被暴露出来
EditDefaultsOnly: 此成员变量只会在蓝图编辑器中被暴露出来
EditInstanceOnly: 此成员变量只会在关卡细节面板中被暴露出来
蓝图编辑器中:
![](https://img-blog.csdn.net/20170113161136626?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlfbml1bml1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
拖拽到Level中:
![](https://img-blog.csdn.net/20170113161140876?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlfbml1bml1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
本文转自:http://blog.csdn.net/xi_niuniu/article/details/54409648