I'm making a 2d game and I've been trying to find a way for the player to always face left or right depending on their inputs, I already have a script for this but it doesn't work at all and I can't figure out why. I couldn't find much on this topic on the devforums so I'm coming here for help, here's my script
I also already have a 2d camera that follows the player around, so I tried getting it's left and right vectors to put on the humanoid part
local players = game.Players local player = players.LocalPlayer local character = player.Character local root = character:WaitForChild"HumanoidRootPart" local camera = workspace.CurrentCamera local UserInputService = game:GetService("UserInputService") local keyA = false local keyD = false UserInputService.InputBegan:Connect(function(InputObject) if InputObject.UserInputType == Enum.UserInputType.Enum.KeyCode.D then keyD = true elseif InputObject.UserInputType == Enum.UserInputType.Enum.KeyCode.A then keyA = true end end) UserInputService.InputEnded:Connect(function(InputObject) if InputObject.UserInputType == Enum.UserInputType.Enum.KeyCode.D then keyD = false elseif InputObject.UserInputType == Enum.UserInputType.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)
Can anyone smarter than me (which is everyone) help me on why it isn't working, or a better script to do the same thing? Thanks !