常见宏整理
整理UE4中常见的宏及其用法。
UPROPERTY
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "ActorTest.generated.h"
UCLASS()
class UNREALCPPLEARN_API AActorTest : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AActorTest();
void PostInitProperties() override;
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
public:
UPROPERTY(VisibleAnywhere, Category = "Snowing")
int32 VoidParam;
UPROPERTY(VisibleAnywhere, Category = "Snowing|Visible")
FString VisibleAnywhereParam;
UPROPERTY(VisibleInstanceOnly, Category = "Snowing|Visible")
FString VisibleInstanceOnlyParam;
UPROPERTY(EditAnywhere, Category = "Snowing|Edit")
float EditAnywhereParam;
UPROPERTY(EditInstanceOnly, Category = "Snowing|Edit")
float EditInstanceOnlyParam;
UPROPERTY(BlueprintReadOnly, Category = "Snowing|Blueprint")
float BlueprintReadOnlyParam;
UPROPERTY(BlueprintReadWrite, Category = "Snowing|Blueprint")
float BlueprintReadWriteParam;
};
UPROPERTY([specifier, specifier, ...], [meta(key=value, key=value, ...)])
Type VariableName;
元数据关键字
- VisibleDefaultsOnly:表示该变量在蓝图编辑器中显示在变量列表中,并且只能在蓝图类的默认值中进行读取操作。常用于定义只读变量。(仅在Class Defaults可见)
- VisibleAnywhere:表示该变量在蓝图编辑器中显示在变量列表中,并且可以在蓝图中进行读取操作。常用于定义可读变量。(Class Defaults 和 实例化 Detail 可见)
- VisibleInstanceOnly:表示该变量在蓝图编辑器中不显示在变量列表中,并且只能在实例化蓝图时进行读取操作。常用于定义只读变量。(仅在实例化Detail可见)
- EditInstanceOnly:可通过属性窗口进行编辑,但只能在实例上进行,不能在原型上进行。
- EditDefaultsOnly:仅在 Class Defaults 可编辑。
- EditAnywhere:Class Defaults 和 实例化 Details 可编辑。
- BlueprintReadOnly:蓝图只读,只能Get。
- BlueprintReadWrite:蓝图读写,可以Set和Get。
- Category 类别:分组。