Smoothdamp only works one way

MouseX = Input.GetAxis("Mouse X") * MouseSensitivity;
LocalPlayerBody.transform.Rotate(0f, Mathf.SmoothDamp(0, MouseX, ref XAccumulatorVelocity, 50 * Time.deltaTime), 0f);

This works great for smoothing a rotation, but it only works when going to the right. If I rotate to the left, it’s incredibly slow.

Recommend you break line 2 apart into sequential steps assigning to temporary variables you can reason about and print out with Debug.Log();

How to break down hairy lines of code:

http://plbm.com/?p=248

If that doesn’t give you the answer, I recommend liberally sprinkling Debug.Log() statements through your code to display information in realtime.

Doing this should help you answer these types of questions:

  • is this code even running? which parts are running? how often does it run?
  • what are the values of the variables involved? Are they initialized?

Knowing this information will help you reason about the behavior you are seeing.

It’s literally caused by the smoothdamp. I tried lerp and other stuff and they didn’t slow it down.

Prove it. Produce a steadily increasing and steadily decreasing simulated mouse input using Mathf.PingPong(), run it through your code and then print the outputs from your smooth damp.

Copy paste that stream of numbers in Excel and hit graph. Is one side steeper (going up) than the other (going down)?