热更

2019-02-17  本文已影响0人  右腕

UCLASS()class AMyActor : public AActor

 GENERATED_BODY()

public: 

//Category是类别(编辑器的选项卡,或者是蓝图的类别)

      UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Damage") 

           int32 TotalDamage; 

      UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Damage")  

           float DamageTimeInSeconds; 

       UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Transient, Category="Damage") 

            float DamagePerSecond; 

};

新建以MyActor为基类的蓝图类,并在场景中生成对象

如果在编译后再次修改将不会变化

UFUNCTION(BlueprintCallable, Category="Damage")

void AMyActor::CalculateValues()

 DamagePerSecond = TotalDamage / DamageTimeInSeconds;

}

//从加载过程初始化属性后计算我们每秒的损伤值。编辑器中的运行时更改不计算在内。

void AMyActor::PostInitProperties()

 Super::PostInitProperties(); 

 CalculateValues();

}

//Engine在编辑器中更改后会通知目标对象

#if WITH_EDITOR

void AMyActor::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)

 CalculateValues(); 

 Super::PostEditChangeProperty(PropertyChangedEvent);

}#endif

上一篇 下一篇

猜你喜欢

热点阅读