In my propeller code;
if (IsPropellerSection) {
Vector3 rotationalVelocity = Vector3.Cross(propeller.angularVelocity,
liftPoint - propeller.propellerPoint);
// For propellers, use primarily the rotational velocity, with a small influence from forward velocity
Vector3 totalVelocity = rotationalVelocity + (velocity * 1.0f);
Vector3 normal = _aircraftTransform.TransformDirection(normalVector);
Vector3 liftDirection = Vector3.Cross(totalVelocity,
Vector3.Cross(normal, totalVelocity)).normalized * -1;
if (_aircraft.throttlePercentage > 0.001f) {
_liftForceVector = currentLift * liftDirection;
_dragVector = -totalVelocity.normalized * totalSectionDrag;
} else {
_dragVector = Vector3.zero;
}
I did not add a line to remove the lift force, which meant that at zero throttle players would get infinite thrust! It was solved byadding _dragVector = -totalVelocity.normalized * totalSectionDrag; to the else statement.
