# lonese 模块依赖关系 ## 文件间引用关系 | 源文件 | 引用方式 | 目标文件 | 目标单位 | |--------|---------|---------|---------| | MyCharacter.h | #include | GameFramework/Character.h | ACharacter | | MyCharacter.h | forward-declare | -- | UInputMappingContext | | MyCharacter.h | forward-declare | -- | UInputAction | | MyCharacter.h | forward-declare | -- | ACameraPawn | | MyCharacter.cpp | #include | MyCharacter.h | AMyCharacter | | MyCharacter.cpp | #include | CameraPawn.h | ACameraPawn | | MyCharacter.cpp | #include | EnhancedInputSubsystems.h | UEnhancedInputLocalPlayerSubsystem | | MyCharacter.cpp | #include | EnhancedInputComponent.h | UEnhancedInputComponent | | MyCharacter.cpp | #include | GameFramework/CharacterMovementComponent.h | UCharacterMovementComponent | | CameraPawn.cpp | #include | CameraPawn.h | ACameraPawn | | CameraPawn.cpp | #include | GameFramework/SpringArmComponent.h | USpringArmComponent | | CameraPawn.cpp | #include | Camera/CameraComponent.h | UCameraComponent | | CameraPawn.cpp | #include | InputActionValue.h | FInputActionValue | | MyPlayerController.cpp | #include | MyPlayerController.h | AMyPlayerController | | MyActor.cpp | #include | MyActor.h | AMyActor | ## 关键依赖链 1. Character Movement: Enhanced Input -> AMyCharacter::SetupPlayerInputComponent -> binds Move/Run/Crouch actions -> AMyCharacter::Move/BeginRun/StopRun/BeginCrouch/StopCrouch 2. Camera Control: Enhanced Input -> AMyCharacter -> CameraMove/CameraZoom/CameraRotate/CameraReset -> forwards to ACameraPawn methods 3. Camera View: AMyCharacter::BeginPlay -> spawns ACameraPawn (deferred) -> ACameraPawn::BeginPlay -> SetViewTarget(self) on PlayerController + AttachToActor(FollowTarget) 4. Camera Override: AMyPlayerController::CalcCamera -> calls AActor::CalcCamera (bypassing default view target blending) -> camera driven by ACameraPawn transform 5. Possession: AMyPlayerController::AcknowledgePossession -> Super + OnClientPossessFinished (BlueprintImplementableEvent in BP_TestCtl)