Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Make player turn around smoothly?

Asked by 2 years ago

I have a script to make the player only look left and right by changing the position of the humanoid to the camera's left and right vector. The problem with my script is that it changes the character from left to right instantly, which looks off. Is there a way I can slow it down, or smooth it? Here's my script

local keyA = false
local keyD = false

game:GetService("UserInputService").InputBegan:connect(function(inputObject, gameProcessedEvent)
    if inputObject.KeyCode == Enum.KeyCode.D then
        keyD = true
    elseif inputObject.KeyCode == Enum.KeyCode.A then
        keyA = true
    end
end)

game:GetService("UserInputService").InputEnded:connect(function(inputObject, gameProcessedEvent)
    if inputObject.KeyCode == Enum.KeyCode.D then
         keyD = false
    elseif inputObject.KeyCode == Enum.KeyCode.A then
         keyA = false
    end
end)

spawn(function()
    while true do wait ()
        if keyA == true and keyD == false then
            root.CFrame = CFrame.new(root.Position, root.Position - camera.CFrame.RightVector)
        elseif keyA == false and keyD == true then
            root.CFrame = CFrame.new(root.Position, root.Position + camera.CFrame.RightVector)
        end
    end
end)

Answer this question