Untitled
unknown
csharp
3 years ago
1.9 kB
6
Indexable
//This is the code what is used for ground checking atm. Allows player to move and OnGround = false all the time in fixedUpdate;
private void OnCollisionStay(Collision other) {
if(other.transform.tag == "Surf" && !isSurfing)
{
isSurfing = true;
}
// Check if any of the contacts has acceptable floor angle
//(contact.normal.y > Mathf.Sin(slopeLimit * (Mathf.PI / 180f) + Mathf.PI/2f))
//if (contact.normal.y > 0 && contact.normal.x <= 0 && contact.normal.z <= 0)
foreach (ContactPoint contact in other.contacts) {
{
if (contact.normal.y > Mathf.Sin(slopeLimit * (Mathf.PI / 180f) + Mathf.PI / 2f))
{
groundNormal = contact.normal;
onGround = true;
jumpCounter = 1;
return;
}
}
}
}
// This was raycast method to set onGround = rayGround in fixedUpdate. It didin't allow player move anymore.
bool rayGround
{
get
{
Vector3 vecDown = transform.TransformDirection(Vector3.down);
bool result = false;
result |= Physics.Raycast(transform.position + new Vector3(0, 0.2f, 0), vecDown, 0.6f, groundMask);
result |= Physics.Raycast(transform.position + new Vector3(-0.2f, 0.2f, 0), vecDown, 0.6f, groundMask);
result |= Physics.Raycast(transform.position + new Vector3(0.2f, 0.2f, 0), vecDown, 0.6f, groundMask);
result |= Physics.Raycast(transform.position + new Vector3(0, 0.2f, 0.2f), vecDown, 0.6f, groundMask);
result |= Physics.Raycast(transform.position + new Vector3(0, 0.2f, -0.2f), vecDown, 0.6f, groundMask);
return result;
}
}Editor is loading...