int main()からBeginPlayへ:UnrealEngineが内部でどのように初期化されるか

— . , , : , . , , . 





Unreal Engine, . — GameMode InitGame. Actor Component BeginPlay Tick . , : .





Unreal Engine : , , . , GameFramework: , GameMode, GameState, PlayerController, Pawn PlayerState.





— , .





Unreal Engine , — . , .





, , , , - , , . , , .





, , . , , 20 : , .





, , . : , . , InitGame BeginPlay , , .





, .





Launch, , . , GuardedMain Launch.cpp. - .





FEngineLoop:





, PreInit, , , . , .





PreInit — , . C++, .uproject .uplugin LoadingPhase, .





. , , - . , , , .





PreInit, Unreal Engine, . , , , . Unreal Engine .





, . , , . , , , - .





?





UObject, . , CDO, . CDO — , .





, (Actor), , - , UCLASS, , , CDO . , , : , - .





StartupModule , ShutdownModule, , .





, Engine , , . PreInit , Init. , , UEngine:





, , . , , , . . 





— , Engine. Engine.h, UEngine, UEditorEngine, UGameEngine.





FEngineLoop , , GameEngine . UEngine, GEngine, ​​ Engine/Engine.h.





Engine, . , , . Engine . 





Engine? , , Browse LoadMap. , , , , UEngine.





Engine URL-, , . URL- . DefaultEngine.ini , . , , URL- , open .





, Engine. : GameInstance, GameViewportClient LocalPlayer. , LocalPlayer — , , GameViewportClient — : , , .





UGameInstance Unreal 4.4 UGameEngine , , Engine.





, Engine GameInstance, GameViewportClient LocalPlayer. : LoadMap. LoadMap UWorld, , , , ​​GameFramework, , , , , , . 





, , . : , , , .





, LoadMap, . — , GameMode, GameState PlayerController, — , . seamless travel, , . , , , , , , .





, , LoadMap. , , , .





, , . , , . , . 





, World . (World Context). Engine, , , , . - GameInstance , , .





UWorld.





, UWorld ULevels, . , , , .umap. LoadMap . , , WorldSettings .





World, .





GameInstance, GWorld. WorldContext, — Game, — . InitWorld , , , .





SetGameMode, GameInstance GameMode. , — , .





InitializeActorsForPlay. , Engine « ». World . . 





ActorComponent Actor, :





  • , ;





  • OnRegister, ;





  • PrimitiveComponent FPrimitiveSceneProxy, FScene, UWorld.





World InitGame GameMode. GameMode GameSession. , , . . PreInitializeComponents . — , .





GameMode — , , PreInitializeComponents. GameMode GameState , GameNetworkManager, , , InitGameState.





, , InitializeComponents, — PostInitializeComponents. InitializeComponents :





  • bAutoActivate, ;





  • bWantsInitializeComponent, InitializeComponent. 





PostInitializeComponents — , , , .





LoadMap : , , , : GameMode , -. , , . GameSession GameNetworkManager . , . - GameSession - (, Steam PSN).





GameState , , : , , , .





, , , , , , — , .





LoadMap LocalPlayers, GameInstance: . LocalPlayer SpawnPlayActor. , PlayActor PlayerController: PlayerController. LocalPlayer, , , PlayerController — .





LocalPlayer Player. Player NetConnection, , .





, , . GameMode. PreLogin GameMode : . , Login. Login PlayerController .





, , , . , PostInitializeComponents PlayerController, , , PlayerState.





PlayerController PlayerState GameMode GameState , ( ) , , ( ). 





PlayerController World Player. PostLogin , , . Pawn PlayerController PostLogin. Pawn — , Controller. PlayerController — Controller. AIController, .





Unreal: , , — -, , , , , — . Controller — , , Pawn — . , , GameMode Pawn PlayerController.





PlayerState , , GameMode, . GameMode Pawn, PlayerController SpectatorPawn, , .





PostLogin , « ». : , Pawn : ​​ — , . PlayerController , , Pawn. RestartPlayer: PlayerController , , Pawn, , Pawn , .





PlayerStart, , . GameMode.





, Pawn PlayerController, . , LoadMap, . , — BeginPlay. Engine World, World GameMode, GameMode WorldSettings, WorldSettings, , .





BeginPlay, , , BeginPlay , Blueprints BeginPlay. , LoadMap , .





:





, , . main, . , , .





, . , , . , LoadingPhase, PreInit.





, UObject, . StartupModule , , , , .





. , Engine, , . , GameInstance GameViewportClient, LocalPlayer GameInstance. .





, , GameInstance , . 





LoadMap. , : , , World Level. , GameInstance, , GameMode. , . , . , GameMode, , , GameSession. .





PreInitializeComponents : GameMode, GameState GameNetworkManager, GameState. : InitializeComponent (, , Activate) , , .





, LocalPlayer . PlayerController, , , PlayerState PlayerState GameState. 





GameSession . PlayerController, LocalPlayer. PostLogin, , , , , , , . , Pawn , . Pawn, PlayerController, , Pawn.





, , , — BeginPlay. BeginPlay , BeginPlay , , , BeginPlay Blueprint. , .





, :





  • GameModeBase GameStateBase, GameMode GameState. Unreal 4.14, Unreal-Tournament . GameModeBase , GameMode «» , BeginPlay. — , , .





  • Pawn, GameFramework Character, Pawn, . Character , , , , . CharacterMovementComponent, Character . , . CharacterMovement , , , .





, , C ++, , , Unreal. , , , .





, , ( UWorld ULevel):





, Unreal Game Framework, , -, . , , . , Game Framework .





, , , , GameInstance, GameInstance . , , , .





, , - , , .








All Articles