Can I assign controls to GUITexture button?

Hey guys,
I’m trying to make touch controls for my game and using GUITextures for buttons.
My character jumps when you press spacebar. Can I do so that when you press that GUITexture Unity will think that spacebar is pressed? Or at least how can assign my jump button to that GUITexture?
I’d highly appreciate a reply.
Here’s my controller script if it helps:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(PlayerPhysics))]
public class PlayerController : Entity {
	
	//player handling
	public float gravity = 20;
	public float walkSpeed = 8;
	public float runSpeed = 12;
	public float acceleration = 30;
	public float jumpHeight = 12;
	public float slideDeceleration = 10;

	private float initiateSlideThreshold = 7;

	//system
	private float animationSpeed;
	private float currentSpeed;
	private float targetSpeed;
	private Vector2 amountToMove;
	private float moveDirX;
	
	//states
	private bool jumping;
	private bool sliding;
	private bool wallHolding;
	private bool stopSliding;
	
	//components
	private PlayerPhysics playerPhysics;
	private Animator animator;
	private GameManager manager;
	

	// Use this for initialization
	void Start () {
		playerPhysics = GetComponent<PlayerPhysics>();
		animator = GetComponent<Animator>();
		manager = Camera.main.GetComponent<GameManager>();  //attached to camera
		animator.SetLayerWeight(1,1);
	}
	
	// Update is called once per frame
	void Update () {
		
		//reset acceleration upon collision
		if (playerPhysics.movementStopped) {
			targetSpeed = 0;
			currentSpeed = 0;
		}
		
		//if player touches the ground
		if (playerPhysics.grounded) {
			amountToMove.y = 0;
			
			if (wallHolding) {
				wallHolding = false;
				animator.SetBool("Wall Hold", false);
			}
			
			//jump logic
			if (jumping) {
				jumping = false;
				animator.SetBool("Jumping",false);
			}
			
			//slide logic
			if (sliding) {
				if (Mathf.Abs(currentSpeed) < .25f || stopSliding) {
					stopSliding = false;
					sliding = false;
					animator.SetBool("Sliding",false);

					playerPhysics.ResetCollider();
				}
			}
			
			//slide input
			if (Input.GetButtonDown("Slide")) {
				if (Mathf.Abs(currentSpeed) > initiateSlideThreshold) {
					sliding = true;
				    animator.SetBool("Sliding",true);
				    targetSpeed = 0;
				
				    playerPhysics.SetCollider(new Vector3(5.15f,1.4f,1.3f), new Vector3(.92f,.7f,0));
				}
			
		    }
		}
		else {
			if (!wallHolding) {
				if (playerPhysics.canWallHold) {
				    wallHolding = true;
				    animator.SetBool("Wall Hold",true);
			    }
		    }
		}
		
		//jump input
		if (Input.GetButtonDown("Jump")) {
			if (sliding) {
				stopSliding = true;
			}
			else if (playerPhysics.grounded || wallHolding) {
				amountToMove.y = jumpHeight;
				jumping = true;
				animator.SetBool("Jumping",true);
				
				if (wallHolding) {
					wallHolding = false;
					animator.SetBool("Wall Hold", false);
				}
			}
		}
		
		
		//set animator parameters
		animationSpeed = IncrementTowards(animationSpeed,Mathf.Abs(targetSpeed),acceleration);
		animator.SetFloat("Speed",animationSpeed);
		
		//input
		moveDirX = Input.GetAxisRaw("Horizontal");
		if (!sliding) {
		    float speed = (Input.GetButton("Run"))?runSpeed:walkSpeed;
		    targetSpeed = moveDirX * speed;
		    currentSpeed = IncrementTowards(currentSpeed, targetSpeed, acceleration);
			
			//face direction
		    if (moveDirX != 0 && !wallHolding) {
		        transform.eulerAngles = (moveDirX>0)?Vector3.up * 180:Vector3.zero;
		    }
		}
		else {
			currentSpeed = IncrementTowards(currentSpeed, targetSpeed, slideDeceleration-4); //slowing down on slide. -4 for longer slide
		}
		
		//set ammount to move
		amountToMove.x = currentSpeed;
		
		if (wallHolding) {
			amountToMove.x = 0;
			if (Input.GetAxisRaw("Vertical") != -1) {
				amountToMove.y = 0;
			}
		}
		
		amountToMove.y -= gravity * Time.deltaTime;
		playerPhysics.Move(amountToMove * Time.deltaTime, moveDirX);
		
	}

	//checkpoints behavior
	void OnTriggerEnter(Collider c){
		if (c.tag == "Checkpoint"){
			manager.SetCheckpoint(c.transform.position);
		}
		if (c.tag == "Finish"){
			manager.EndLevel();
		}
	}

	// Increase n towards target by speed
	private float IncrementTowards(float n, float target, float a) {
		if (n == target) {
			return n;
		}
		else {
			float dir = Mathf.Sign(target - n); // must n be increased or decreased to get closer to target
			n += a * Time.deltaTime * dir;
			return (dir == Mathf.Sign(target-n))? n: target; // if n has now passed target then return target, otherwise return n
		}
	}
}

Take one GUITexture and assign controls through touch event
Simple example will be like this

public GUITexture jumpButton;

void Update()
{
 for (int i=0; i <Input.touchCount; i++) 
 {
        if(Input.GetTouch(i).phase == TouchPhase.Began || Input.GetTouch(i).phase 
                      == TouchPhase.Stationary ||touch.phase == TouchPhase.Moved)
        {
		         if(jumpButton.GetScreenRect().Contains(touch.position) ) 
                 {
                        //Code for jump
                 }
         }
 }

}