-
What do you want to achieve? I want the vehicle to don’t lose speed while turning.
-
What is the issue? The vehicle slows down when turning.
-
What solutions have you tried so far? A tried changing mass, but no result. And I didn’t find any post in devforum related to this problem.
What I noticed is that the vehicle slows down while the turning “starts”, when the wheel reaches the turning angle, it starts speeding up again.
Code in charge of turning:
local SteerSpeed = self.SteerSpeed
local SteerGoal = self.SteerFloat
local testing = dt * 100
if self.Steer < SteerGoal then
if self.Steer < 0 then
SteerSpeed = self.SteerReturnSpeed
self.Steer = math.min(self.Steer + SteerSpeed * testing, SteerGoal)
else
self.Steer = math.min(self.Steer + SteerSpeed * testing, SteerGoal)
end
else
if self.Steer > 0 then
SteerSpeed = self.SteerReturnSpeed
self.Steer = math.max(self.Steer - SteerSpeed * testing, SteerGoal)
else
self.Steer = math.max(self.Steer - SteerSpeed * testing, SteerGoal)
end
end
local minSteer = self.VehicleConfig.SteerSpeed - (self.VehicleConfig.SteerSpeedRange * .5)
self.SteeringMotor.MaxVelocity = ((SteerSpeed * self.VehicleConfig.WheelSteerRotationSpeed / minSteer)) + 1
local sDecay = (1 - math.min(self.Seat.AssemblyLinearVelocity.Magnitude / self.VehicleConfig.SteerDecay, 1 - (self.VehicleConfig.MinSteerAngle * .01)))
local goal = self.Steer * self.VehicleConfig.SteerMultipler * sDecay
self.attFL.CFrame = CFrame.new(self.attFL.Position) * CFrame.Angles(0, -math.rad(goal), -math.pi * .5)
self.attFR.CFrame = CFrame.new(self.attFR.Position) * CFrame.Angles(0, -math.rad(goal), -math.pi * .5)
self.SteerRotation = goal
Constraints: