DateScroller, DateTimeScroller, TimeScroller

Note

DateTime.TimeOfDay is not setted or changed by DateScroller, but changed by DateTimeScroller.

DateScroller Options

  • Interactable bool

    User can interact with this widget.

  • Current Date As Default bool

    • Default Date DateTime (string in Inspector window)

  • Default Date Min DateTime (string in Inspector window)

    Minimal selectable date.

  • Default Date Max DateTime (string in Inspector window)

    Maximum selectable date.

  • Format string

    Format to parse Default Date, Default Date Min, and Default Date Max.

  • Independent scroll bool

    If enabled any time period changes will not change other time periods.

  • Years bool

    Display years scroller.

    • Years Scroller Scroller

    • Years Step int

    • Years Format string

  • Months bool

    Display moths scroller.

    • Months Scroller Scroller

    • Months Step int

    • Months Format string

  • Days bool

    Display days scroller.

    • Days Scroller Scroller

    • Days Step int

    • Days Format string

  • Events

    • OnDateChanged UnityEvent<DateTime>

      The event raised when date changed.

      Arguments: selected datetime.

    • OnDateClick UnityEvent<DateTime>

      The event raised when date setted or changed.

      Arguments: selected datetime.

DateTimeScroller Options

Same settings as DateScroller with addition:

  • Hours bool

    Display hours scroller.

    • Hours Scroller Scroller

    • Hours Step int

    • Hours Format string

      Used if AMPM disabled.

    • Hours AMPM Format string

      Used if AMPM enabled.

  • Minutes bool

    Display minutes scroller.

    • Minutes Scroller Scroller

    • Minutes Step int

    • Minutes Format string

  • Seconds bool

    Display seconds scroller.

    • Seconds Scroller Scroller

    • Seconds Step int

    • Seconds Format string

  • AMPM bool

    Display AMPM scroller.

    • AMPM Scroller Scroller

    • AMPM Format string

TimeScroller Options

  • Interactable bool

    User can interact with this widget.

  • Current Time As Default bool

    • Time Text TimeSpan (string in Inspector window)

  • Default Time Min TimeSpan (string in Inspector window)

    Minimal selectable time.

  • Default Time Max TimeSpan (string in Inspector window)

    Maximum selectable time.

  • Format string

    Format to parse Time Text, Default Time Min, and Default Time Max.

  • Independent scroll bool

    If enabled any time period changes will not change other time periods.

  • Hours bool

    Display hours scroller.

    • Hours Scroller Scroller

    • Hours Step int

  • Minutes bool

    Display minutes scroller.

    • Minutes Scroller Scroller

    • Minutes Step int

  • Seconds bool

    Display seconds scroller.

    • Seconds Scroller Scroller

    • Seconds Step int

  • AMPM bool

    Display AMPM scroller.

    • AMPM Scroller Scroller

  • Events

    • OnTimeChanged UnityEvent<TimeSpan>

      The event raised when time changed.

      Arguments: selected time.

namespace UIWidgets.Examples
{
   using UnityEngine;

   /// <summary>
   /// Test DateScroller.
   /// </summary>
   public class TestDateScroller : MonoBehaviour
   {
      /// <summary>
      /// DateScroller.
      /// </summary>
      [SerializeField]
      protected UIWidgets.DateBase DateScroller;

      /// <summary>
      /// Start this instance.
      /// </summary>
      protected virtual void Start()
      {
         DateScroller.OnDateChanged.AddListener(ProcessDate);

         // change culture
         DateScroller.Culture = new System.Globalization.CultureInfo("en-US");

         // change calendar
         DateScroller.Culture = new System.Globalization.CultureInfo("ja-JP");
         DateScroller.Culture.DateTimeFormat.Calendar = new System.Globalization.JapaneseCalendar();
      }

      void ProcessDate(System.DateTime dt)
      {
         Debug.Log(dt);
      }
   }
}

Customization

ScrollBlock has OnItemChanged(int index, ScrollBlockItem item) event. You can subscribe to this event to customize items depending on index or value.

  • selected item has Index = 0

  • items before it have a negative index

  • items after it have a positive index

  • step of the index is 1.

public class ScrollBlockCustomization : MonoBehaviour
{
   [SerializeField]
   ScrollBlock YearsScrollBlock;

   protected void Start()
   {
      YearsScrollBlock.OnItemChanged += ItemChanged;
   }

   protected void OnDestroy()
   {
      if (YearsScrollBlock != null)
      {
         YearsScrollBlock.OnItemChanged -= ItemChanged;
      }
   }

   protected void ItemChanged(int index, ScrollBlockItem item)
   {
      item.Text.Bold = index == 0;
      item.Text.fontSize = index == 0 ? 20 : 14;
   }
}