How do I assign Android touch instead of keyboard input?

I’ve not had experience in touch input so need a bit of help with this. I’ve tried a few methods, scripts and looked around unity and the web, but can not get this to work right. I’m trying to hook up 3 GUI texture buttons to this script to make the character move left right and jump on Android What do I need to change/add on here? The current keyboard input is left, right arrows and space. Your help would be much appreciated.

using UnityEngine;
using System.Collections;

public class PlayerControllerScript : MonoBehaviour
public float maxSpeed = 10f;
bool facingRight = true;

Animator anim;

bool grounded = false;
public Transform groundCheck;
float groundRadius = 0.2f;
public LayerMask whatIsGround;
public float jumpForce = 700f;
public AudioClip Ping;

void Start () 
	anim = GetComponent<Animator> ();

void FixedUpdate () 
	grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround); 
	anim.SetBool ("Ground", grounded);
	anim.SetFloat ("vSpeed", rigidbody2D.velocity.y);
	if (!grounded) return;
	float move = Input.GetAxis ("Horizontal");
	anim.SetFloat ("Speed", Mathf.Abs(move));
	rigidbody2D.velocity = new Vector2(move * maxSpeed, rigidbody2D.velocity.y);
	if (move > 0 && !facingRight)
		Flip ();
	else if (move < 0 && facingRight)
		Flip ();

void Update()
	if(grounded && Input.GetKeyDown(KeyCode.Space))
		anim.SetBool("Ground", false);
		rigidbody2D.AddForce(new Vector2(0, jumpForce));
		AudioSource.PlayClipAtPoint(Ping, transform.position);

void Flip()
	facingRight = !facingRight;
	Vector3 theScale = transform.localScale;
	theScale.x *= -1;
	transform.localScale = theScale;


The free unity beta sample contains android control scripts. That should help you out.

If you want to build it yourself, look here:

One approach could be that you check touches & check touch position. If position is “less than 200px” (just random example), then “move left” and so on.