So earlier today I was working on a slide mechanic for my game. It took a while to get an understanding of what to do, but I've run into a couple of problems when it comes to detecting a slope that goes downward.
1. Slopes arent being detected properly. 2. The boolean value (slope) seems to randomly fire true or false once the key is pressed?
I'm thinking that I'm detecting the slope incorrectly, but need further assistance on the matter.
SCRIPT:
local slope = false local params = RaycastParams.new() params.FilterDescendantsInstances = {workspace.Living} params.FilterType = Enum.RaycastFilterType.Blacklist local dist = 5 local results = workspace:Raycast(root.CFrame.p, -root.CFrame.upVector * dist, params) if results then local normal = results.Normal local incline = Vector3.new(1, 0, 0):Cross(normal) if incline.Magnitude == 0 then incline = Vector3.new(1, 0, 0) end print(incline) local angle = math.acos(Vector3.new(0, 1, 0):Dot(incline)) if angle > math.pi / 1.5 then slope = true end if slope then -- Slide Down Slope print("Yes") else -- Slide For Short Distance Foward print("No") end end
I also used: https://devforum.roblox.com/t/how-would-one-go-about-making-a-slide-mechanic/805298/2 for a guide.