About button press sprint

Hi
I’m currently making Player sprinting by pressing button.
I made a button on UI and put my script. It doesn’t make any error. But nothing happens.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Sprinter : MonoBehaviour {

	public float sprintSpeed;
	public float coolDownTimer;
	public float durationTimer;
	private bool sprinting;

	void Start(){
		sprinting = false;
		sprintSpeed = 3.0f;
		coolDownTimer = 0;
		durationTimer = 0;
	}

	void OnClick()
	{
		if(Input.GetButton("Sprint"))
		{
			if(sprinting){
				if(Input.GetButtonDown("Sprint") &&coolDownTimer <= 0)
				{
					durationTimer = 3.0f;
					sprinting = true;
				}

				durationTimer -= Time.deltaTime;
				if(durationTimer >= 0 &&Input.GetButtonDown("Sprint"))
				{
					transform.position = transform.forward * 3.0f * Time.deltaTime;
				}

				else
				{
					transform.position = transform.forward * 1.0f * Time.deltaTime;
				}

				coolDownTimer -= Time.deltaTime;
				if(coolDownTimer <= 0)
				{
					coolDownTimer = 0;
				}
			}
			else
			{
				transform.position = transform.forward * 1.0f * Time.deltaTime;
			}
		}
	}
}

		
I want to make " When you press the sprint button on the UI, the player's speed goes up to 3.0f for 3 second and then have 5 second cool down." My game is FPS. Please help me.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Sprinter : MonoBehaviour
{
    public Button button; // Drag & Drop the button in the inspector
    public float baseSpeed;
    public float sprintSpeed;
    public float sprintDuration;
    public float cooldownDuration;
    private float sprintTime;
    private bool sprinting;
    private float currentSpeed ;

    void Start()
    {
        sprinting = false;
        currentSpeed = baseSpeed;
        sprintTime = -sprintDuration - cooldownDuration;
        if ( button == null )
            button = GameObject.Find( "Sprint" ).GetComponent<Button>();
        button.onClick.AddListener( OnClick );
    }

    void Update()
    {
        if ( sprinting && Time.time > sprintTime + sprintDuration )
        {
            sprinting = false;
            currentSpeed = baseSpeed;
        }

        transform.Translate( Vector3.forward * currentSpeed * Time.deltaTime );
    }

    public void OnClick()
    {
        // Prevent the player from spamming the button
        if ( Time.time < sprintTime + sprintDuration + cooldownDuration )
            return;

        sprintTime = Time.time;
        sprinting = true;
        currentSpeed = sprintSpeed;
    }
}