Rigidbody movement bumpy.

My rigidbody movement i bumpy when i move, the camera shakes and the raycast that I send out forward is unreliable because of the shaking. The rigidbody is quite slow so I have to have high force when I move which results in when i turn it’s like I’m on ice.

void Update () {
		Vector3 speed;
		float sprint = 1f;
		if((Input.GetAxis("Forward") != 0 || Input.GetAxis("Sideway") != 0) && grounded){
			if(Input.GetAxis("Sprint") > 0){
				sprint = sprintFactor;
			}
			else if(Input.GetAxis("Sprint") < 0){
				sprint = 0.5f;
			}
			else{
				sprint = 1f;
			}
			//Move
			speed = (Input.GetAxis("Forward") * moveSpeed * transform.forward * sprint + Input.GetAxis("Sideway") * strafeSpeed * transform.right) * Time.deltaTime;

			//Jump
			if(Input.GetAxis("Jump") > 0){
				speed.y = jumpPower;
			}

			rigidbody.AddForce(speed);
		}
	}

Move your

rigidbody.AddForce(speed);

to FixedUpdate() rather than putting it in Update().