Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }