Module |
|
Header |
/Engine/Source/Runtime/Engine/Classes/GameFramework/CharacterMovementComponent.h |
Include |
#include "GameFramework/CharacterMovementComponent.h" |
Source |
/Engine/Source/Runtime/Engine/Private/Components/CharacterMovementComponent.cpp |
virtual void ServerMove
(
float TimeStamp,
FVector_NetQuantize10 InAccel,
FVector_NetQuantize100 ClientLoc,
uint8 CompressedMoveFlags,
uint8 ClientRoll,
uint32 View,
UPrimitiveComponent * ClientMovementBase,
FName ClientBaseBoneName,
uint8 ClientMovementMode
)
The actual RPCs are passed to ACharacter, which wrap to the Implementation and Validate call here, to avoid Component RPC overhead. For example: Client: UCharacterMovementComponent::ServerMove => Calls CharacterOwner->ServerMove(...) triggering RPC on server Server: ACharacter::ServerMove_Implementation => Calls CharacterMovement->ServerMove_Implementation To override the client call to the server RPC (on CharacterOwner), override ServerMove(). To override the server implementation, override ServerMove_Implementation(). Replicated function sent by client to server - contains client movement and view info. Calls either CharacterOwner->ServerMove() or CharacterOwner->ServerMoveNoBase() depending on whehter ClientMovementBase is null.