I assume MyPawn inherits directly from Pawn. If so, you can’t use a CharacterMovementComponent, as it works specifically with Characters. (Trying to copy-paste the CharacterMovementComponent from MyCharacter to MyPawn actually crashes my editor.) Using blueprints, the only built-in MovementComponent options you have when inheriting directly from Pawn are ProjectileMovement and RotatingMovement. Unfortunately neither fits your needs.
Assuming you don’t want to use code, I can think of two options that might work for you if you want your paddle to be a pawn:
-
Derive MyPawn from DefaultPawn instead of Pawn (you will need to look under “Custom Classes” for DefaultPawn when creating the blueprint) and use the same MoveRight event graph as you have above. DefaultPawn will give you a MeshComponent, CollisionComponent and FloatingPawnMovementComponent, all of which should work well for your paddle.
-
Derive MyPawn from Pawn, and drive movement without a MovementComponent by setting the pawn’s location directly using a SetActorLocation node. The following is an example:
To set a fixed camera as your view of the play area in either of the above cases, you could place a CameraActor in your map and set it as the view target like so in your level blueprint:
Another option altogether is for your paddle blueprint to not be a pawn, but just a regular actor. In this case you could define the movement bindings to move your paddle actor on a PlayerController blueprint. Furthermore, you could set your view target to a SpectatorPawn. You would create a blueprint that inherits from SpectatorPawn and set the class as your default pawn in your GameMode. In your case you’d also want to disable the default input bindings that SpectatorPawn adds by unchecking “Add Default Movement Bindings” in the blueprint’s defaults.