说明以该命令行模式启动游戏的前提下的两个问题:
1.WITH_EDITOR中的代码会被编译
2.由于没有在编辑器中(即没有打开虚幻编辑器),所以GIsEditor为false
WITH_EDITOR和WITH_EDITORONLY_DATA的区别
在论坛中找到的答案:
- WITH_EDITORONLY_DATA in headers for wrapping reflected members.
- WITH_EDITOR in CPP files for code.. Has nothing to do with reflection.
意思就是:
头文件中使用WITH_EDITORONLY_DATA包装反射的成员。
在CPP文件的代码中使用WITH_EDITOR,与反射无关。
callineditor
-
- .h
- UFUNCTION(CallInEditor, Category = "Sky Creator|General")
- void SetEditorTimeOfDay(float NewValue);
- UFUNCTION(CallInEditor, Category = "Sky Creator|General")
- void SetEditorWeatherPreset(USkyCreatorWeatherPreset* NewValue);
- UFUNCTION(CallInEditor, Category = "Sky Creator|General")
- void SetEditorWeatherSettings(FSkyCreatorWeatherSettings NewValue);
-
- .cpp
-
-
- #define SKYCREATOR_DECLARE_SEQUENCER_SETFUNCTION_ANDUPDATE(MemberType, MemberName) void ASkyCreator::Set##MemberName(MemberType NewValue)\
- {\
- if (MemberName != NewValue)\
- {\
- MemberName = NewValue;\
- UpdateSettings();\
- }\
- }\
- SKYCREATOR_DECLARE_SEQUENCER_SETFUNCTION(float, EditorTimeOfDay);
- SKYCREATOR_DECLARE_SEQUENCER_SETFUNCTION_ANDUPDATE(USkyCreatorWeatherPreset*, EditorWeatherPreset);
-
- SKYCREATOR_DECLARE_SEQUENCER_SETFUNCTION(float, SunriseTime);
- SKYCREATOR_DECLARE_SEQUENCER_SETFUNCTION(float, SunsetTime);
- SKYCREATOR_DECLARE_SEQUENCER_SETFUNCTION(float, SunDawnOffsetTim
- //ue 5.2
- namespace EWorldType
- {
- enum Type
- {
- /** An untyped world, in most cases this will be the vestigial worlds of streamed in sub-levels */
- None,
-
- /** The game world */
- Game,
-
- /** A world being edited in the editor */
- Editor,
-
- /** A Play In Editor world */
- PIE,
-
- /** A preview world for an editor tool */
- EditorPreview,
-
- /** A preview world for a game */
- GamePreview,
-
- /** A minimal RPC world for a game */
- GameRPC,
-
- /** An editor world that was loaded but not currently being edited in the level editor */
- Inactive
- };
- }