模块加载

模块加载遵循的顺序:

  1. 首先加载的是 Platform File Module,因为引擎要读取文件。
  2. 接下来加载的是核心模块(FEngineLoop::PreInit->LoadCoreModules)。
  3. 加载 CoreUObject。
  4. 然后在初始化引擎之前加载模块(FEngineLoop::LoadPreInitModules)。
  5. 加载 Engine。
  6. 加载 Renderderer。
  7. 加载 AnimGraphRuntime。

加载平台相关模块(FPlatformMisc::LoadPreInitModules), Windows 平台下加载:

  1. D3D11RHI(开启 bForceD3D12 后会加载 D3D12)
  2. OpenGLDrv
  3. SlateRHIRenderer
  4. Landscape
  5. ShaderCore
  6. TextureCompresser
  7. Start Up Modules(FEngineLoop::LoadStartupCoreModules)。
  8. Core(核心 Core 模块加载的时机并不是在最初)。
  9. Networking

然后是平台相关模块,Windows 平台下:

  1. XAudio2
  2. HeadMountedDisplay
  3. SourceCodeAccess
  4. Messaging
  5. SessionServices
  6. EditorStyle
  7. Slate
  8. UMG
  9. MessageLog
  10. CollisionAnalyzer
  11. FunctionalTesting
  12. BehaviorTreeEditor
  13. GameplayTasksEditor
  14. GameplayAbilitiesEditor
  15. EnvironmentQueryEditor
  16. OnlineBlueprintSupport
  17. IntroTutorials
  18. Blutility

根据启用的插件加载对应的模块哦:

  1. TaskGraph
  2. ProfilerService

Editor 模块加载是在 UEditorEngine 的 Init 中被一个数组控制:

static const TCHAR* ModuleNames[] =
		{
			TEXT("Documentation"),
			TEXT("WorkspaceMenuStructure"),
			TEXT("MainFrame"),
			TEXT("GammaUI"),
			TEXT("OutputLog"),
			TEXT("SourceControl"),
			TEXT("TextureCompressor"),
			TEXT("MeshUtilities"),
			TEXT("MovieSceneTools"),
			TEXT("ModuleUI"),
			TEXT("Toolbox"),
			TEXT("ClassViewer"),
			TEXT("StructViewer"),
			TEXT("ContentBrowser"),
			TEXT("AssetTools"),
			TEXT("GraphEditor"),
			TEXT("KismetCompiler"),
			TEXT("Kismet"),
			TEXT("Persona"),
			TEXT("AnimationBlueprintEditor"),
			TEXT("LevelEditor"),
			TEXT("MainFrame"),
			TEXT("PropertyEditor"),
			TEXT("EditorStyle"),
			TEXT("PackagesDialog"),
			TEXT("AssetRegistry"),
			TEXT("DetailCustomizations"),
			TEXT("ComponentVisualizers"),
			TEXT("Layers"),
			TEXT("AutomationWindow"),
			TEXT("AutomationController"),
			TEXT("DeviceManager"),
			TEXT("ProfilerClient"),
			TEXT("SessionFrontend"),
			TEXT("ProjectLauncher"),
			TEXT("SettingsEditor"),
			TEXT("EditorSettingsViewer"),
			TEXT("ProjectSettingsViewer"),
			TEXT("Blutility"),
			TEXT("XmlParser"),
			TEXT("UndoHistory"),
			TEXT("DeviceProfileEditor"),
			TEXT("SourceCodeAccess"),
			TEXT("BehaviorTreeEditor"),
			TEXT("HardwareTargeting"),
			TEXT("LocalizationDashboard"),
			TEXT("MergeActors"),
			TEXT("InputBindingEditor"),
			TEXT("AudioEditor"),
			TEXT("TimeManagementEditor"),
			TEXT("EditorInteractiveToolsFramework"),
			TEXT("TraceInsights")
		};

posted @ 2020-08-09 14:59  CodeWithMe  阅读(209)  评论(0)    收藏  举报