Ignore intellisense, all thats telling you is that the syntax is ok, it doesn’t tell you anything about the logic. Have you checked the cast? does it return a non null value? You should always check pointers before using them anyway. So I’d start there.
If ATTSPlayerController and ATTSCharacter are your default PC and pawn classes then possession happens automatically. It may be that this happens after input component setup though. Try accessing the character later. For example, override PC’s Possess function, call Super::Possess function and then do your stuff.
@NisshokuZK well yeah they are default. I set them in GameMode constructor. So you mean I should override Possess() and inside the function casting to my character?
Edit: Just tried, still not working
But just to ask… I’m doing InputComponent->BindAxis(“MoveForward”, MyCharacter, &ATTSCharacter::MoveForward()); inside the PlayerController… is that right? Or I should put that inside Character’s SetupPlayerInputComponent()
your better off putting character movement controls inside the characters inputcomponent, stuff inside the player controller input is usually menu controls and anything you want players to have access to no matter what pawn they posses (like opening the pause menu and etc).
you could put it int here but make sure you look into playerstate since you said its gonna be multiplayer, playercontrollers dont get replicated so you would pass the info into the playerstate to be replicated between all client (score screen, modifiers, etc) i believe (i’m still learning replication myself)