/// <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; } }