Exemplo n.º 1
0
        public float CalculateSlopeAngle()
        {
            float dist = SkinBottomWidth * transform.localScale.y + 10f * SmartPlatformCollider.k_SkinMinWidth;

            for (int i = 0; i < BottomCheckPoints.Count; ++i)
            {
                Vector3         start    = transform.TransformPoint(BottomCheckPoints[i]);
                Vector3         dir      = -transform.up;
                SmartRaycastHit smartHit = SmartRaycast(start, dir, dist, LayerCollision | OneWayCollisionDown);
                if (smartHit != null)
                {
                    return(Vector2.Angle(smartHit.normal, Vector2.right) - 90f);;
                }
            }
            return(0f);
        }
        protected float _CalculateGroundDist()
        {
            float groundDist = float.MaxValue;

            for (int i = 0; i < m_smartCollider.BottomCheckPoints.Count; ++i)
            {
                SmartRaycastHit smartHit = m_smartCollider.SmartRaycast(
                    transform.TransformPoint(m_smartCollider.BottomCheckPoints[i]),
                    -transform.up,
                    float.MaxValue,
                    m_smartCollider.LayerCollision | m_smartCollider.OneWayCollisionDown);
                if (smartHit != null)
                {
                    groundDist = Mathf.Min(groundDist, smartHit.distance - m_smartCollider.SkinBottomWidth);
                }
            }
            return(groundDist);
        }
Exemplo n.º 3
0
        public bool IsGrounded()
        {
            if (m_isOnMovingPlatform)
            {
                return(true);
            }


            float dist = SkinBottomWidth * transform.localScale.y + 10f * SmartPlatformCollider.k_SkinMinWidth;

            for (int i = 0; i < BottomCheckPoints.Count; ++i)
            {
                Vector3         start    = transform.TransformPoint(BottomCheckPoints[i]);
                Vector3         dir      = -transform.up;
                SmartRaycastHit smartHit = SmartRaycast(start, dir, dist, LayerCollision | OneWayCollisionDown);
                if (smartHit != null)
                {
                    return(true);
                }
            }
            return(false);
        }