How can I make a scroll wheel time picker in Unity?

It’d also be great if the user is able set the time using numpad

Using a scroll wheel is quite straightforward. To test it out, create a cube and put the following script on it:

public class TestScript : MonoBehaviour
{
    void OnMouseOver()
    {
        if (Input.mouseScrollDelta != Vector2.zero)
        {
            print(Input.mouseScrollDelta);
        }
    }
}

This returns a Vector2 every frame that there is a change in the scroll wheel. If you only have a standard wheel, just use mouseScrollDelta.y. If you’re using an Apple Magic Mouse or a trackpad, you can use both X and Y components. By putting the script on the game object, the input is only registered to that object. You would do the same over a text field so scroll the value of the field.

By the way, you do not need to use Time.DeltaTime when scaling the input because the value returned is the change in the current frame so there’s no need to adjust for frame time. Just be aware that Apple allow you to reverse the Y direction in system preferences so you may need to take that into account.

As for setting via a number pad, those are just buttons so use the standard UI controls. You can find plenty of tutorials on UI elsewhere.

Do come back if you have any difficulties…

Thank you so much for your detailed answer.
I’m only a beginner (I can only make 2D UI) so I don’t think I’m quite ready for this yet.