Цитата alik_makarov_90 (

)
1) Мне создать макс.скорость float, и отдельно текущую скорость и прибавлять по сколько то единиц, когда Тапаю пока не будет равно макс скорости? Или Только текущую скорость, которая if > 10.0f (к примеру) вернуть текущую скорость?
Тут уже на Ваш вкус! Решений же великое множество 
Цитата alik_makarov_90 (

)
3) OnMouseDown() использовать?
Я, если честно, совсем не знаком с Unity, пусть и C# немного понимаю. Поэтому я написал на Python в Blender (на Blender Game Engine) 
Код
mouse = bge.logic.mouse.events[bge.events.LEFTMOUSE]
if not bge.logic.KX_SENSOR_JUST_ACTIVATED==mouse and own["speed"]>10.0:
own["speed"]-=0.1
if own["speed"]<10.0:
own["speed"] = 10.0
if own["speed"]>20.0:
own["speed"] = 20.0
if bge.logic.KX_SENSOR_JUST_ACTIVATED==mouse:
own["speed"]+=1.0
mouse = bge.logic.mouse.events[bge.events.LEFTMOUSE] - "сенсор" клика левой кнопкой мыши (он просто для понимания)
bge.logic.KX_SENSOR_JUST_ACTIVATED - а вот это уже сам "тап", то есть срабатывает только при клике ( к вопросу о OnMouseDown()... То есть да, судя по названию, скорее всего его использовать и нужно! )
Ну и дальше идут проверки:
1) Если мы не тапаем, но скорость выше базовой - уменьшаем;
2) Если скорость вдруг упала ниже базовой ( всё-таки с float работаем );
3) Если достигли максимума скорости - то, о чём Вы писали выше;
4) Ну и сам тап.
И вся эта конструкция находится в цикле while True. То есть срабатывает постоянно. Надеюсь, понимаете, зачем)
Конечно, уверен, что есть более изящные решения, и Вы, скорее всего до них доберётесь, но то, что я скинул - уже работает! 
Надеюсь, был полезен!