UE4 C++ 编辑器模式下属性被修改时触发对应事件

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "TestActors.generated.h"

UCLASS()
class TESTACTOR_API ATestActors : public AActor
{
	GENERATED_BODY()

public:	
	// Sets default values for this actor's properties
	ATestActors();

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(EditAnyWhere, BlueprintReadWrite, Category = "UPROPERTY Test")
		bool ShowMsg;
#if WITH_EDITOR
	void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent)
	{
		Super::PostEditChangeProperty(PropertyChangedEvent);
		if (PropertyChangedEvent.Property && PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(ATestActors, ShowMsg))
		{
            //触发的事件
			GEngine->AddOnScreenDebugMessage(-1, 2.f, FColor::Cyan, TEXT("Hello World!"));		 
		}
	}
#endif
};

猜你喜欢

转载自blog.csdn.net/qq_41410054/article/details/123685784