Can't move in 4.2. What changed?

My project started as the FPS C++ in 4.1. I rewrote and deleted several classes for it. I integrated Razer Hydras, etc. After moving to 4.2, I can no longer move. However, I can still rotate the character. Does anyone have any ideas on where I should be looking for the cause of this? Starting a new FPS C++ project and compiling results in a character that functions properly. I’m at a loss for now.

I am able to log that the input is detected in the Character’s MoveForward and MoveRight functions as well as AddMovementInput. I have tried setting bForce to true when AddMovementInput calls AddInputVector. I have tried to log the value of WordlAccel inside the AddInputVector


void UVRCharacterMovementComponent::AddInputVector(FVector WorldAccel, bool bForce /*=false*/)
{
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, WorldAccel.ToString());
	if (bForce || !IsMoveInputIgnored())
	{
		ControlInputVector += WorldAccel;
	}
}

However, this message never appears on screen.

**Hey BlackRang666!
**
From what you’ve said it almost sounds like this function isn’t being called from anywhere.

My questions are:

  1. How are you handling your input? Is it bind-axis/action, or are you directly keying it in. (If key is pressed, or get Axis value, etc)
  2. Did you make sure after the update that your gamemode in world details or your blueprint is still referencing your character and your playercontroller?

Regardless of the above, the best method of finding the problem is this:

If the function does have something that is calling it,
stick a debug there,
and then stick another one in the function that calls that,
all the way back to the actual point of input.

Where you see you aren’t getting messages anymore is the root of the problem.

I hope this helps!
If not, I’d be happy to look at your PC/Character class for you.

-

Its direct, I don’t plan on alternate control schemes so this was easier to do with the Hydras. Now, even though my project compiles fine, the editor crashes when it loads my project. Looks like it is time to reinstall U4 from scratch.

I don’t know why U4 was crashing before, but I am back to the original problem. I call MoveRight and the log indicates that it works. This calls AddMovementInput which has logs that indicates that it works. This calls void AddInputVector in it’s movement component. I override this and add my own that has a log line. Even though It should clearly be called from AddInputVector, which shows a log, I don’t get the log from AddInputVector.

Ok, I had placed my log after the call to super tick in my movement component, moving it before show that indeed ControlInputVector gets set correctly. So I log acceleration and that is being set correctly. So If it has acceleration why won’t it move?