Just recently decided to try out coding in ROBLOX, and it's been pretty fun! I pulled a third person script from one of the ROBLOX Developer articles and tweaked it, and I've got a pretty solid camera so far, custom poppercam and all.
Question is, I'm not sure how to implement a zoom in & out function through a scroll wheel. This is what I have set up so far:
local function cameraLock(character) local startCFrame = CFrame.new((rootPart.CFrame.Position)) * CFrame.Angles(0, math.rad(cameraAngleX), 0) * CFrame.Angles(math.rad(cameraAngleY), 0, 0) local cameraCFrame = startCFrame:ToWorldSpace(CFrame.new(cameraOffset.X, cameraOffset.Y, cameraOffset.Z)) local cameraFocus = startCFrame:ToWorldSpace(CFrame.new(cameraOffset.X, cameraOffset.Y, -10000)) camera.CFrame = CFrame.new(cameraCFrame.Position, cameraFocus.Position) if(Popper == true) then -- Don't mind this, this is a custom poppercam. local Ignore = { rootPart.Parent } local CheckRay = Ray.new(rootPart.Position + cameraDefault, cameraCFrame.Position - rootPart.Position) local HitPart, HitPosition, Normal = game.Workspace:FindPartOnRayWithIgnoreList(CheckRay, Ignore, false, true) --print(Normal) if HitPart then camera.CFrame = (camera.CFrame - (camera.CFrame.Position - (HitPosition)) + ((player.Character.Head.Position - camera.CFrame.Position).Unit) * 0.372) end end end
I use RunService.RenderStepped:Connect
to get this to run at all times, with a separate function to hide and lock mouse control.
I did some digging, and I came up with two events to check if mousewheel up/down is being fired:
mouse.WheelForward:Connect(function(inputObject) print("Wheel went forward!") end) mouse.WheelBackward:Connect(function() print("Wheel went backward!") end)
Thing is, I can't exactly insert this onto the former function, as it's being called on every frame. Testing it inside cameraLock()
prints "Wheel went forward!" three hundred times, hahaha.
Should I keep using this? I'm not sure what other ways I can approach this. I'd take this to the ROBLOX Dev Forum but I'm not a member yet.
Any help is appreciated! Again, I'm still getting a grasp on LUA as a whole, concepts and all, so, that's another thing to keep in mind. Thanks!