我在类中声明了用于编辑器模式的函数与变量 并添加了条件编译#if WITH_EDITORONLY_DATA in header 并且在cpp里对应函数实现处加了#if WITH_EIDTOR 但是 我发现UPROPERTY()宏下的变量可以在WITH_EDITORONLY_DATA下正确打包 但是UFUNCTION宏下的函数声明 无法正确package 有什么办法吗?
另外我知道 不使用UFUNCTION()的函数声明可以通过 但是我需要使用CallInEditor宏将其暴露给编辑器蓝图以供他人使用
如果你想在编辑器模式下暴露 UFUNCTION() 宏下的函数,请在 UFUNCTION 宏的声明中加入 BlueprintCallable 和 CallInEditor 宏。这样,编辑器会正确的打包该函数。代码示例如下:
UFUNCTION(BlueprintCallable, CallInEditor, Category = "MyFunction")
void MyFunction();
我明白这一点,我的意思是,使用了UFUNCTION宏进行反射的函数,无法像普通函数一样 通过条件编译#if #endif 去控制是否编译,会引起打包错误。
当然 将它移除条件编译后 只在函数实现里加条件编译后 它就能正确允许且打包了