Class Scrollbar
A standard scrollbar with a variable sized handle that can be dragged between 0 and 1.
Implements
Inherited Members
Namespace: UnityEngine.UI
Assembly: UnityEngine.UI.dll
Syntax
[AddComponentMenu("UI (Canvas)/Scrollbar", 36)]
[ExecuteAlways]
[RequireComponent(typeof(RectTransform))]
public class Scrollbar : Selectable, IMoveHandler, IPointerDownHandler, IPointerUpHandler, IPointerEnterHandler, IPointerExitHandler, ISelectHandler, IDeselectHandler, IBeginDragHandler, IDragHandler, IInitializePotentialDragHandler, IEventSystemHandler, ICanvasElement
Remarks
The slider component is a Selectable that controls a handle which follow the current value and is sized according to the size property. The anchors of the handle RectTransforms are driven by the Scrollbar. The handle can be a direct child of the GameObject with the Scrollbar, or intermediary RectTransforms can be placed in between for additional control. When a change to the scrollbar value occurs, a callback is sent to any registered listeners of onValueChanged.
Constructors
Scrollbar()
Protected default constructor. Use UnityEngine.GameObject.AddComponent<T>() to add a Scrollbar to a GameObject.
Declaration
protected Scrollbar()
Properties
direction
The direction of the scrollbar from minimum to maximum value.
Declaration
public Scrollbar.Direction direction { get; set; }
Property Value
| Type | Description |
|---|---|
| Scrollbar.Direction |
handleRect
The RectTransform to use for the handle.
Declaration
public RectTransform handleRect { get; set; }
Property Value
| Type | Description |
|---|---|
| RectTransform |
numberOfSteps
The number of steps to use for the value. A value of 0 disables use of steps.
Declaration
public int numberOfSteps { get; set; }
Property Value
| Type | Description |
|---|---|
| int |
onValueChanged
Handling for when the scrollbar value is changed.
Declaration
public Scrollbar.ScrollEvent onValueChanged { get; set; }
Property Value
| Type | Description |
|---|---|
| Scrollbar.ScrollEvent |
Remarks
Allow for delegate-based subscriptions for faster events than 'eventReceiver', and allowing for multiple receivers.
size
The size of the scrollbar handle where 1 means it fills the entire scrollbar.
Declaration
public float size { get; set; }
Property Value
| Type | Description |
|---|---|
| float |
value
The current value of the scrollbar, between 0 and 1.
Declaration
public float value { get; set; }
Property Value
| Type | Description |
|---|---|
| float |
Methods
ClickRepeat(PointerEventData)
Coroutine that repeatedly scrolls toward the pointer position while the button is held down.
Declaration
[Obsolete("Use ClickRepeat(Vector2 screenPosition, Camera camera) instead")]
protected IEnumerator ClickRepeat(PointerEventData eventData)
Parameters
| Type | Name | Description |
|---|---|---|
| PointerEventData | eventData | The pointer event data for the held press. |
Returns
| Type | Description |
|---|---|
| IEnumerator | An enumerator for the coroutine. |
Remarks
Obsolete. Please use ClickRepeat(Vector2, Camera) instead.
ClickRepeat(Vector2, Camera)
Coroutine function for handling continual press during Scrollbar.OnPointerDown.
Declaration
protected IEnumerator ClickRepeat(Vector2 screenPosition, Camera camera)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector2 | screenPosition | The screen position to scroll toward. |
| Camera | camera | The camera for screen-to-world conversion. |
Returns
| Type | Description |
|---|---|
| IEnumerator | An enumerator for the coroutine. |
FindSelectableOnDown()
Find the selectable object below this one.
Declaration
public override Selectable FindSelectableOnDown()
Returns
| Type | Description |
|---|---|
| Selectable | The nearest Selectable below, or null. |
Overrides
Remarks
Prevents selection if the Scrollbar moves on the Vertical axis.
Examples
using UnityEngine;
using System.Collections;
using UnityEngine.UI; // required when using UI elements in scripts
public class Example : MonoBehaviour
{
public Button startButton;
// Disables the selectable UI element directly below the Start Button
public void IgnoreSelectables()
{
//Finds the selectable UI element below the start button and assigns it to a variable of type "Selectable"
Selectable secondButton = startButton.FindSelectableOnDown();
//Disables interaction with the selectable UI element
secondButton.interactable = false;
}
}
FindSelectableOnLeft()
Find the selectable object to the left of this one.
Declaration
public override Selectable FindSelectableOnLeft()
Returns
| Type | Description |
|---|---|
| Selectable | The nearest Selectable to the left, or null. |
Overrides
Remarks
Prevents selection if the Scrollbar moves on the Horizontal axis.
Examples
using UnityEngine;
using System.Collections;
using UnityEngine.UI; // required when using UI elements in scripts
public class ExampleClass : MonoBehaviour
{
public Button btnMain;
// Disables the selectable UI element directly to the left of the Start Button
public void IgnoreSelectables()
{
//Finds the selectable UI element to the left the start button and assigns it to a variable of type "Selectable"
Selectable secondButton = startButton.FindSelectableOnLeft();
//Disables interaction with the selectable UI element
secondButton.interactable = false;
}
}
FindSelectableOnRight()
Find the selectable object to the right of this one.
Declaration
public override Selectable FindSelectableOnRight()
Returns
| Type | Description |
|---|---|
| Selectable | The nearest Selectable to the right, or null. |
Overrides
Remarks
Prevents selection if the Scrollbar moves on the Horizontal axis.
Examples
using UnityEngine;
using System.Collections;
using UnityEngine.UI; // required when using UI elements in scripts
public class ExampleClass : MonoBehaviour
{
public Button btnMain;
// Disables the selectable UI element directly to the right the Start Button
public void IgnoreSelectables()
{
//Finds the selectable UI element to the right the start button and assigns it to a variable of type "Selectable"
Selectable secondButton = startButton.FindSelectableOnRight();
//Disables interaction with the selectable UI element
secondButton.interactable = false;
}
}
FindSelectableOnUp()
The Selectable object above current
Declaration
public override Selectable FindSelectableOnUp()
Returns
| Type | Description |
|---|---|
| Selectable | The nearest Selectable above, or null. |
Overrides
Remarks
Prevents selection if the Scrollbar moves on the Vertical axis.
Examples
using UnityEngine;
using System.Collections;
using UnityEngine.UI; // required when using UI elements in scripts
public class ExampleClass : MonoBehaviour
{
public Button btnMain;
// Disables the selectable UI element directly above the Start Button
public void IgnoreSelectables()
{
//Finds the selectable UI element above the start button and assigns it to a variable of type "Selectable"
Selectable secondButton = startButton.FindSelectableOnUp();
//Disables interaction with the selectable UI element
secondButton.interactable = false;
}
}
GraphicUpdateComplete()
Callback sent when this ICanvasElement has completed Graphic rebuild.
Declaration
public virtual void GraphicUpdateComplete()
LayoutComplete()
Callback sent when this ICanvasElement has completed layout.
Declaration
public virtual void LayoutComplete()
OnBeginDrag(PointerEventData)
Called by a BaseInputModule before a drag is started.
Declaration
public virtual void OnBeginDrag(PointerEventData eventData)
Parameters
| Type | Name | Description |
|---|---|---|
| PointerEventData | eventData | The pointer event data for the drag. |
OnDisable()
Called when it becomes disabled. Stops driving RectTransform properties.
Declaration
protected override void OnDisable()
Overrides
OnDrag(PointerEventData)
When dragging is occurring this will be called every time the cursor is moved.
Declaration
public virtual void OnDrag(PointerEventData eventData)
Parameters
| Type | Name | Description |
|---|---|---|
| PointerEventData | eventData | The pointer event data for the drag. |
OnEnable()
Called when it becomes enabled. Begins driving RectTransform properties and updates visuals.
Declaration
protected override void OnEnable()
Overrides
OnInitializePotentialDrag(PointerEventData)
Called by a BaseInputModule when a drag has been found but before it is valid to begin the drag.
Declaration
public virtual void OnInitializePotentialDrag(PointerEventData eventData)
Parameters
| Type | Name | Description |
|---|---|---|
| PointerEventData | eventData | The pointer event data for the drag. |
OnMove(AxisEventData)
Determine in which of the 4 move directions the next selectable object should be found.
Declaration
public override void OnMove(AxisEventData eventData)
Parameters
| Type | Name | Description |
|---|---|---|
| AxisEventData | eventData | The axis event data containing the move direction. |
Overrides
Examples
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;// Required when using Event data.
public class ExampleClass : MonoBehaviour, IMoveHandler
{
//When the focus moves to another selectable object, Invoke this Method.
public void OnMove(AxisEventData eventData)
{
//Assigns the move direction and the raw input vector representing the direction from the event data.
MoveDirection moveDir = eventData.moveDir;
Vector2 moveVector = eventData.moveVector;
//Displays the information in the console
Debug.Log(moveDir + ", " + moveVector);
}
}
OnPointerDown(PointerEventData)
Called when the pointer is pressed. Evaluates the current selection state and transitions to the appropriate state.
Declaration
public override void OnPointerDown(PointerEventData eventData)
Parameters
| Type | Name | Description |
|---|---|---|
| PointerEventData | eventData | The pointer event data for the press. |
Overrides
Remarks
Starts a coroutine to scroll toward the pointer position while the pointer is pressed.
Examples
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;// Required when using Event data.
public class ExampleClass : MonoBehaviour, IPointerDownHandler// required interface when using the OnPointerDown method.
{
//Do this when the mouse is clicked over the selectable object this script is attached to.
public void OnPointerDown(PointerEventData eventData)
{
Debug.Log(this.gameObject.name + " Was Clicked.");
}
}
OnPointerUp(PointerEventData)
Called when the pointer is released. Evaluates the eventData and transitions to appropriate state.
Declaration
public override void OnPointerUp(PointerEventData eventData)
Parameters
| Type | Name | Description |
|---|---|---|
| PointerEventData | eventData | The pointer event data for the release. |
Overrides
Examples
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;// Required when using Event data.
public class ExampleClass : MonoBehaviour, IPointerUpHandler, IPointerDownHandler// These are the interfaces the OnPointerUp method requires.
{
//OnPointerDown is also required to receive OnPointerUp callbacks
public void OnPointerDown(PointerEventData eventData)
{
}
//Do this when the mouse click on this selectable UI object is released.
public void OnPointerUp(PointerEventData eventData)
{
Debug.Log("The mouse click was released");
}
}
OnRectTransformDimensionsChange()
Called when the RectTransform dimensions change. Updates visuals.
Declaration
protected override void OnRectTransformDimensionsChange()
Overrides
OnValidate()
Declaration
protected override void OnValidate()
Overrides
Rebuild(CanvasUpdate)
Called by the canvas update system to rebuild the scrollbar handle.
Declaration
public virtual void Rebuild(CanvasUpdate executing)
Parameters
| Type | Name | Description |
|---|---|---|
| CanvasUpdate | executing | The current canvas update stage. |
SetDirection(Direction, bool)
Set the direction of the scrollbar, optionally setting the layout as well.
Declaration
public void SetDirection(Scrollbar.Direction direction, bool includeRectLayouts)
Parameters
| Type | Name | Description |
|---|---|---|
| Scrollbar.Direction | direction | The direction of the scrollbar. |
| bool | includeRectLayouts | Should the layout be flipped together with the direction? |
SetValueWithoutNotify(float)
Set the value of the scrollbar without invoking onValueChanged callback.
Declaration
public virtual void SetValueWithoutNotify(float input)
Parameters
| Type | Name | Description |
|---|---|---|
| float | input | The new value for the scrollbar. |
Update()
Update the rect based on the delayed update visuals. Got around issue of calling sendMessage from onValidate.
Declaration
protected virtual void Update()