Exemplo n.º 1
0
    // Calculates the clipping rect for the text
    public void CalcClippingRect()
    {
        if (spriteText == null)
        {
            return;
        }

        Vector3 tl = marginTopLeft;
        Vector3 br = marginBottomRight;

        // Clamp the client rect to any clipping rect we may have:
        if (clipped)
        {
            Vector3 origTL = tl;
            Vector3 origBR = br;
            tl.x = Mathf.Clamp(localClipRect.x, origTL.x, origBR.x);
            br.x = Mathf.Clamp(localClipRect.xMax, origTL.x, origBR.x);
            tl.y = Mathf.Clamp(localClipRect.yMax, origBR.y, origTL.y);
            br.y = Mathf.Clamp(localClipRect.y, origBR.y, origTL.y);
        }

        clientClippingRect.FromRect(Rect.MinMaxRect(tl.x, br.y, br.x, tl.y));
        clientClippingRect.MultFast(transform.localToWorldMatrix);

        spriteText.ClippingRect = clientClippingRect;
        if (caret != null)
        {
            caret.ClippingRect = clientClippingRect;
        }
    }