bool isGrounded(CharacterControl control) { if (control.RIGIBODY.velocity.y > -0.001 && control.RIGIBODY.velocity.y <= 0f) { return(true); } if (control.RIGIBODY.velocity.y < 0f) { foreach (GameObject o in control.BottomSpheres) { Debug.DrawRay(o.transform.position, -Vector3.up * 0.7f, Color.green); RaycastHit hit; if (Physics.Raycast(o.transform.position, -Vector3.up, out hit, Distance)) { if (!control.RagdollParts.Contains(hit.collider) && !Ledge.isLedge(hit.collider.gameObject) && !Ledge.isLedgeChecker(hit.collider.gameObject) && !Ledge.isCharacter(hit.collider.gameObject)) { return(true); } } } } return(false); }
private void OnTriggerExit(Collider col) { Checkledge = col.gameObject.GetComponent <Ledge>(); if (Checkledge != null) { isGrabbingLedge = false; // GrabbedLedge = null; } }
private void OnTriggerEnter(Collider col) { Checkledge = col.gameObject.GetComponent <Ledge>(); if (Checkledge != null) { isGrabbingLedge = true; GrabbedLedge = Checkledge; } }
bool CheckFront(CharacterControl control) { foreach (GameObject o in control.FrontSpheres) { Debug.DrawRay(o.transform.position, control.transform.forward * 0.3f, Color.red); RaycastHit hit; if (Physics.Raycast(o.transform.position, control.transform.forward, out hit, BlockDistance)) { if (!control.RagdollParts.Contains(hit.collider)) { if (!isBodyPart(hit.collider) && !Ledge.isLedge(hit.collider.gameObject) && !Ledge.isLedgeChecker(hit.collider.gameObject)) { return(true); } } } } return(false); }