Log in to vote

0
So essentially I'm trying to create a camera that allows the player to look up or down 90 degrees. I'm having some issues with this however, as whenever I modify the built-in camera system for roblox to go beyond the maximium of 80 degrees, it breaks and starts spinning everywhere.

local MIN_Y = math.rad(-90) local MAX_Y = math.rad(90) function BaseCamera:CalculateNewLookCFrameFromArg(suppliedLookVector: Vector3?, rotateInput: Vector2): CFrame local currLookVector: Vector3 = suppliedLookVector or self:GetCameraLookVector() local currPitchAngle = math.asin(currLookVector.y) local yTheta = math.clamp(rotateInput.y, -MAX_Y + currPitchAngle, -MIN_Y + currPitchAngle) local constrainedRotateInput = Vector2.new(rotateInput.x, yTheta) local startCFrame = CFrame.new(ZERO_VECTOR3, currLookVector) local newLookCFrame = CFrame.Angles(0, -constrainedRotateInput.x, 0) * startCFrame * CFrame.Angles(-constrainedRotateInput.y,0,0) return newLookCFrame end --ALL OF THIS CODE IS FROM ROBLOX THEMSELVES. I'M JUST TRYING TO MODIFY IT FOR MY NEEDS.

This code is from the `player.playerscripts.PlayerModule.CameraModule.BaseCamera`

script.

For some reason, whenever I unlock it, the camera just starts to spin whenever that value is reached. It happens for any value above 81 degrees, and is really annoying.