'Physics.Raycast Grounddrag system not working
I'm trying to implement a unity FPS Rigid body movement controller into my Unity 3d project. However I cannot seem to add drag to my player. I've been trying to do it with the following code:
private void Update()
{
//Ground check
grounded = Physics.Raycast(transform.position, Vector3.down, playerHeight * 0.5f + 0.2f, whatIsGround);
MyInput();
//Handle drag
if (grounded)
{
rb.drag = groundDrag;
}
else
{
rb.drag = 0;
}
}
Anyone have an idea as to what else I could try to add or fix with the script?
Solution 1:[1]
If you defined the ground layer in the inspector, the problem seems to be here. Fix it with only replace whatIsGround
to whatIsGround.value
.
public LayerMask whatIsGround;
private void Update()
{
grounded = Physics.Raycast(transform.position, Vector3.down, playerHeight * 0.5f + 0.2f, whatIsGround.value);
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |