Hello,
I am currently working on a wall climbing mechanic and to do it I have to anchor the HumanoidRootPart of the player. Then depending on the players input move the RootParts CFrame accordingly. At the end of the climb the HumanoidRootPart is unanchored.
All of that works properly; however, after the climbing is finished the Character starts to behave strangely. When the player is close to anything their speed changes, varying from speeding up to slowing down.
Any thoughts on why this may be?
Here is the code for starting the climb: *Edit: I rewrote my own movement script for this project and Anchoring/Unanchoring the HumanoidRootPart seems to mess up the Humanoid:Move() function
if Hold_Shift and not crouched and not finishing and not climbing then local forwardRay = RAY(rootPartPosition, rootPartLookVector*rootPart.Size.Z*2) local part, hitPosition = workspace:FindPartOnRayWithWhitelist(forwardRay, ClimbList, true) if part then rootPart.Anchored=true local Z = (rootPartPosition-VECTOR3(hitPosition.X, rootPartPosition.Y, hitPosition.Z)).magnitude rootPart.CFrame = CFRAME(rootPartPosition, VECTOR3(hitPosition.X,rootPartPosition.Y,hitPosition.Z) - normal)*CFRAME(0,0,-(Z-0.85)) climbing=true end end
Here is the code for ending the climb:
if h.Jump and climbing then climbing=false rootPart.Anchored=false JumpAnim:Play() finishing=false rootPart.Velocity = (-rootPartLookVector+VECTOR3(0,1,0))*h.JumpPower end