Untitled

mail@pastecode.io avatar
unknown
csharp
2 years ago
1.9 kB
1
Indexable
Never
//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;
        }
    }