Exemple #1
0
    /// <summary>
    /// User can interact with scrollbars
    /// </summary>
    /// <param name="s"></param>
    /// <param name="origin"></param>
    /// <param name="direction"></param>
    public void slide(Scrollbar scrollbar, Vector3 origin, Vector3 direction)
    {
        //Get the canvas component

        Physics.Raycast(origin, direction, out hit);
        //canvas = GameObject.Find("Canvas1");
        c = scrollbar.GetComponentInParent <Canvas>();//canvas.GetComponent<Canvas>();
        if (hit.distance > 0)
        {
            RectTransform rt       = scrollbar.GetComponent <RectTransform>();
            Vector3       canvasPt = rt.InverseTransformPoint(hit.point);

            float percent;
            if ((scrollbar.direction == Scrollbar.Direction.LeftToRight) || (scrollbar.direction == Scrollbar.Direction.RightToLeft))
            {
                percent = (canvasPt.x - rt.rect.xMin) / (rt.rect.xMax - rt.rect.xMin);
            }
            else
            {
                percent = (canvasPt.y - rt.rect.yMin) / (rt.rect.yMax - rt.rect.yMin);
            }

            if (percent > 1.0)
            {
                percent = 1.0f;
            }
            else if (percent < 0.0)
            {
                percent = 0;
            }

            if ((scrollbar.direction == Scrollbar.Direction.RightToLeft) || (scrollbar.direction == Scrollbar.Direction.TopToBottom))
            {
                percent = 1 - percent;
            }

            scrollbar.value = percent;
        }
    }