Download

关于 “Add movement input()”

Add movement input () This function, how to make small mobile input exists, the current situation is that the small amount of movement will be ignored, causing the Pawn will not move. When I checked Force, it didn’t work. My project wanted tiny mobile input to exist. Thank you.

I am not quite sure I understand but I think you’re looking for the “deadzone” setting in Project Settings -> Input.

I tried , Not work. I have set all “deadzone” to 0, tiny movements will still be ignored, you can try, use “Add movement input”, give a small amount of movement, this movement will be “Add movement input” is ignored and Pawn does not move.

What movement component are you using?

Acceleration in Character Movement Component is rounded and quantized prior to being sent across the network, and this also occurs even if you’re not online. There’s not much you can do about it aside from change the code in Character Movement to NOT round acceleration.

Can’t confirm if this is the problem or not, but it might be.

3.png This “AddWorldOffset”, although correct, will penetrate, so it cannot be used.


This is very important. I get the VR device’s real-world movement. After the calculation, it is input to “Add Movement Input”, but because the tiny movement is ignored, the line of sight will be very strange.

If you’re using Blueprint there’s nothing you can do about it, the rounding occurs in C++:



/** Round acceleration, for better consistency and lower bandwidth in networked games. */
virtual FVector RoundAcceleration(FVector InAccel) const;

FVector UCharacterMovementComponent::RoundAcceleration(FVector InAccel) const
{
    // Match FVector_NetQuantize10 (1 decimal place of precision).
    InAccel.X = FMath::RoundToFloat(InAccel.X * 10.f) / 10.f;
    InAccel.Y = FMath::RoundToFloat(InAccel.Y * 10.f) / 10.f;
    InAccel.Z = FMath::RoundToFloat(InAccel.Z * 10.f) / 10.f;
    return InAccel;
}


As you can see, you only get one place of decimal precision by default. The function is virtual so you can override it in your own Character Movement Component to just make it return the InAccel