How to Convert an Angle into `Vector.new()`?

I’m coding a sliding mechanic that maintains velocity when you slide on a wedge. I’ve used Raycasting and mathematical formulas to obtain the angle I needed, but I can’t seem to make the linear velocity parallel to the slope [see screenshot for a better explanation].

If anyone knows how I could do this, I’m all ears because my last line of script doesn’t take the real angle into account.

local function Slide() print("Slide") local PartSize = SlideDownRaycastResult.Instance.Size local X = PartSize.Z^2 + PartSize.Y^2 local Angle = math.deg(SlideDownRaycastResult.Instance.Size.Y/math.sqrt(X)) LinearVelocity.MaxForce = 40000 local Force = 5 LinearVelocity.VectorVelocity = SlideDownRaycastResult.Instance.CFrame.UpVector * -1 * Force + Vector3.new(0,-Angle,-Angle) end 

You could try using Vector3:Cross() to obtain the vector.

local direction = -humanoidRootPart.CFrame.RightVector:Cross(SlideDownRaycastResult.Normal) LinearVelocity.VectorVelocity = direction * Force 

You can read this tutorial for more info on how it works:

1 Like