Hello!
I would like to ask you to help me with optimize my code of course if it is possible.
It is a vehicle wheel. Vehicle has 4 wheels. On scene there is 769 vehicles. With that amount of vehicles I have 60 fps. Profiler says that the worst is SpringAndDamping then ForwardFriction and SideFriction. Is it possible to optimalize this code?
private void FixedUpdate()
{
velocity = (myTransform.position - prevPos) / Time.deltaTime;
wheelVel = myTransform.InverseTransformDirection(velocity);
SpringAndDamping();
ForwardFriction();
SideFriction();
prevPos = myTransform.position;
}
private void SpringAndDamping()
{
if (IsGrounded == false) return;
Vector3 up = myTransform.up;
Vector3 pos = myTransform.position;
vehicleRigidbody.AddForceAtPosition(up * (springForce * forceMultiple.Evaluate(Mathf.Lerp(1, 0, Vector3.Distance(pos, hitPoint) / wheelDistance))), pos, ForceMode.Acceleration);
vehicleRigidbody.AddForceAtPosition(up * (dampingForce * (-wheelVel.y)), pos, ForceMode.Acceleration);
}
private void ForwardFriction()
{
if (IsGrounded == false) return;
vehicleRigidbody.AddForceAtPosition(myTransform.forward * (forwardFriction * (-wheelVel.z)), myTransform.position, ForceMode.Acceleration);
}
private void SideFriction()
{
if (IsGrounded == false) return;
vehicleRigidbody.AddForceAtPosition(myTransform.right * (globalFriction * (-wheelVel.x)), myTransform.position, ForceMode.Acceleration);
}