Files
loneseDocument/Plugins/CharacterControl/_relationships.md
meishibiezb 29a3f77908 init
2026-06-04 21:44:13 +08:00

2.9 KiB

CharacterControl 插件依赖关系

文件间引用关系

源文件 引用方式 目标文件 目标单位
CommandEndpoint.h 定义(自包含) GameplayTagContainer.h FGameplayTagContainer
CommandEndpoint.h 定义(自包含) InstancedStruct.h FInstancedStruct
CommandEndpoint.h 定义(自包含) —(自身) FCommandMeta, FContinuousPayload, FCommandPacket, FDiscreteMeta, FEndpointState, UEndpointDispatcher, ICommandEndpoint, UCommandEndpoint
CommandRouter.h #include CommandEndpoint.h ICommandEndpoint, FCommandPacket, FEndpointState
CommandRouterComponent.h #include CommandEndpoint.h ICommandEndpoint, FCommandPacket, FEndpointState
CommandRouterComponent.h #include CommandRouter.h UCommandRouter
CommandRouterComponent.cpp #include CommandRouterComponent.h UCommandRouterComponent
EndpointComponent.h #include CommandEndpoint.h ICommandEndpoint, UCommandEndpoint, FEndpointState, FCommandPacket, UEndpointDispatcher
CommandInputComponent.h #include EndpointComponent.h UEndpointComponent
CommandInputComponent.h 前向声明 UInputCommandData, UEnhancedInputComponent, FInputCommand
CommandInputComponent.cpp #include InputCommandData.h UInputCommandData, FInputCommand
CommandInputComponent.cpp #include EnhancedInputComponent.h UEnhancedInputComponent
CommandInputComponent.cpp #include EnhancedInputSubsystems.h UEnhancedInputLocalPlayerSubsystem
CommandInputComponent.cpp #include InputAction.h UInputAction
InputCommandData.h #include CommandEndpoint.h FCommandMeta, FContinuousPayload, FDiscreteMeta
InputCommandData.h 前向声明 UInputAction

关键依赖链

  1. Input to Command: Enhanced Input → UCommandInputComponent::BuildPacket → FInputCommand (from UInputCommandData) → FCommandPacket → OnCommandOutput delegate
  2. Command Routing: FCommandPacket → UCommandRouter::ReceiveCommand (hop check) → RouteDiscreteCommand/RouteContinuousCommand → IsEndpointMatched → child ICommandEndpoint::ReceiveCommand
  3. Upward Propagation: child endpoint outputs → UCommandRouter::OnRegisteredEndpointOutputCommand → if bIsUpward → re-inject locally + forward upward
  4. State Change Propagation: child endpoint state changes → UCommandRouter::OnRegisteredEndpointStateChanged → tag aggregation update → CommitTagsToInterest
  5. Auto-Wiring: UCommandRouterComponent::BeginPlay → AutoRegisterEndpoints → discovers sibling ICommandEndpoint on owner Actor → RegisterEndpoint
  6. Endpoint Auto-Registration: UEndpointComponent::BeginPlay → finds sibling UCommandRouterComponent → self-registers with InternalRouter
  7. Blueprint Endpoint Pattern: ICommandEndpoint (BP implementation) → GetEndpointDispatcher_BP → UEndpointDispatcher → delegates broadcast to C++ observers