UI buttons activate movement functions for one time only

Hi everyone. I’m working on a little 2D game for mobile in which the player sprite only moves right and left. It is working great with this script (C# script):

if (Input.GetKey (KeyCode.RightArrow))
{
	MoveRight ();
}

if (Input.GetKey (KeyCode.LeftArrow))
{
	MoveLeft ();
}

The player keeps moving right when I’m holding the right arrow on the keyboard and stops moving when i release it, and that’s exactly what i need. But when i added UI buttons and linked them to my moveRight() and moveLeft() functions on the playerController script, it works but i have to keep clicking to make the player move. (by linking, i mean the OnClick script attached to UI buttons, and the Event Trigger Component… no one of them is working for me)
How can i make buttons work like the keyboard input method ??

Thats because a Button click is pressing and releasing in one. To achieve what you want try the EventTrigger OnPointerDown and OnPointerUp events.