コード例 #1
0
    void OnCollisionStay2D(Collision2D collision)
    {
        collideFromTop    = false;
        collideFromLeft   = false;
        collideFromRight  = false;
        collideFromBottom = false;
        //print("collided");
        int contactCount = collision.GetContactCount();

        for (int i = 0; i < contactCount; i++)
        {
            var side = collision.GetContactSide(i);
            if (side == Collision2DSideType.Bottom && up.GetComponent <DetectBoxCollider>().collided)
            {
                collideFromTop = true;
            }
            if (side == Collision2DSideType.Top && down.GetComponent <DetectBoxCollider>().collided)
            {
                collideFromBottom = true;
            }
            if (side == Collision2DSideType.Right && left.GetComponent <DetectBoxCollider>().collided)
            {
                collideFromLeft = true;
            }
            if (side == Collision2DSideType.Left && right.GetComponent <DetectBoxCollider>().collided)
            {
                collideFromRight = true;
            }
        }
        if (collideFromBottom)
        {
            jumptimer  = 0;
            velocity.y = 0;
        }
    }