UPROPERTY(EditAnywhere) 任何地方
UPROPERTY(EditDefaultsOnly) 只有在类的编辑界面
UPROPERTY(EditInstanceOnly) 只有在拖拽到场景下类的编辑界面
UClass(meta=(ShowWorldContextPin)) 显示worldContext 接口 需要手动指定
UCLASS(NotBlueprintable) 蓝图类不可以继承该类
UFUNCTION(BlueprintCallable, meta=(AutoCreateRefTerm = "Param1"))
virtual F1(int Param1); //表示函数参数Param1 具有默认值 在蓝图中可以不用赋值
UCLASS(Blueprintable) 表示该c++类可以被蓝图继承
UCLASS(BlueprintType) 表示该类可作为蓝图变量
UPROPERTY(BlueprintAssignable)
用来指定delegate 变量
UPROPERTY(meta=(ToolTip = "测试"))
用来显示鼠标放置的提示内容 如果需要显示中文的话 注意将.h文件修改编码格式为utf-8
UPROPERTY(meta=(PinShownByDefault))
将属性设置为节点的引脚
使用自定义ini文件存储变量值
定义类
UCLASS(config = haha)
class LEARN_API AConfigActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AConfigActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
UPROPERTY(Config)
float ExVariable;
UPROPERTY(config, EditAnywhere, Category = About)
FGuid ProjectID;
};
这个时候进行编译 在工程的Config 文件夹下就会创建一个Defaulthaha.ini文件 编辑文件内容
[/Script/Learn.ConfigActor]
ExVariable=33
这里需要注意的是Learn是你的模块名 一般默认就是工程名 ConfigActor是你的类名 注意 这里没有A
然后写下对应的Uproperty 变量的值 运行程序就可以了 变量的读取不是实时的 假如进行修改的话 需要重启编辑器
UCLASS(DisplayName = "CustomDisplayName")
即可修改类在蓝图中显示的默认名称
UFUNCTION(BlueprintPure)
用于函数获得某些值 并且不会进行修改
网络相关的关键宏
Client Reliable Server Unreliable WithValidation
UFUNCTION(meta = (HidePin = "pinName", DefaultToSelf = "pinName"))
隐藏函数的指定引脚 并赋值为当前节点的上下文
隐藏函数的引脚到高级菜单中
UFUNCTION(meta=(AdvancedDisplay))
UFUNCTION(BlueprintCallable, meta = (AdvancedDisplay = 1))
int32 FuncGettter(int32 one, int32 two);
隐藏变量到高级菜单中
UPROPERTY(EditAnywhere,AdvancedDisplay)
TestEnum testEnum;
如何声明一个变量既为private 又可以再蓝图中访问到
那么可以使用UPROPERTY(BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
声明类在蓝图创建时对变量赋值
UPROPERTY(BlueprintReadWrite, meta = (ExposeOnSpawn = true))
int32 TestParam;