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

Camera rotating around a point instead of the center of the camera?

Asked by 4 years ago

Hi, I am creating a VR game, and making a function to "snap" the camera to a certain rotation. For some reason it's rotating around a point, making the camera go in a very weird way. Here's the code I currently have:

InputService.InputChanged:Connect(function(input, gameprocessed)
    if input.UserInputType == Enum.UserInputType.Gamepad1 then
        if input.KeyCode == Enum.KeyCode.Thumbstick2 then -- Rotating (right controller)
            local joystickPos = input.Position
            local camera = game.Workspace.CurrentCamera
            camera.CameraType = Enum.CameraType.Scriptable
            local rightControllerCFrame = VRService:GetUserCFrame(Enum.UserCFrame.RightHand)
            if joystickPos.X < -0.5 then -- left
                if not joystickDebounce then
                    joystickDebounce = true
                    camera.CFrame = camera.CFrame*CFrame.Angles(0,math.rad(30),0)
                end
            elseif joystickPos.X > 0.5 then -- right
                if not joystickDebounce then
                    joystickDebounce = true
                    camera.CFrame = camera.CFrame*CFrame.Angles(0,-math.rad(30),0)
                end
            else
                joystickDebounce = false
            end
        end
    end
end)

Here's an example of how it looks: https://youtu.be/5m_DmPPm9Ac

Answer this question