I can't seem to get my character to jump in my mobile app

I got two gui buttons on the left side of the screen for going forward and backward. And an action button on the right side of the screen.

I’ve set up the Directional Buttons to send -1 and 1 for Horizontal Axis to the player’s FPSInputController.

However, I cannot get the player to jump if the action button is swiped upwards (I’ve set the action button to jump when swiped up and slide when swiped downward). What am I doing wrong?

private var fp : Vector2;  // first finger position
private var lp : Vector2;  // last finger position
private var actionSwipe : boolean;
private var jump : boolean;

var ass : GameObject; //player fits in this parameter
var touchZone : Rect;
var BounceAmount : float = 14;
var Dive : float = 20;

function Start (){
	actionSwipe = false;
	jump = false;
}


function Update () {
		

for (var touch : Touch in Input.touches){
		if (touch.phase == TouchPhase.Began){
			fp = touch.position;
			lp = touch.position;

		}
		
		if (touch.phase == TouchPhase.Moved ){
			lp = touch.position;
		}
		
		if(guiTexture.HitTest (touch.position)){
		

 			if(guiTexture.name == "DpadLeft"){
 		 
				ass.GetComponent(FPSInputController).horizontalAxis = -1;
				Debug.Log ("HitTest: The Touch is down on " + this.name);
		
			}else if(guiTexture.name == "DpadRight"){
 		 
				ass.GetComponent(FPSInputController).horizontalAxis = 1;
				Debug.Log ("HitTest: The Touch is down on " + this.name);
				
			}else if(guiTexture.name == "DpadAction"){
 		 
				actionSwipe = true;
		        ass.GetComponent(CharacterMotor).movement.velocity.y = BounceAmount;	

				Debug.Log ("HitTest: The Touch is down on " + this.name);
			}
	
		
		}
//		if ( touchZone.Contains( touch.position ) ){
//			ass.GetComponent(FPSInputController).dpadHorizontalAxis = -1;	
//				Debug.Log ("TouchZone: The Touch is down on " + this.name);		}
				
		if(touch.phase == TouchPhase.Ended){
				Debug.Log ("The Touch has ended");
				ass.GetComponent(FPSInputController).horizontalAxis = 0;
				
				if(actionSwipe){
					 actionSwipe = false;
				     if((fp.y - lp.y) < 0 ){ // up swipe
				     	   Debug.Log ("Jump");
				          ass.GetComponent(CharacterMotor).movement.velocity.y = BounceAmount;	
					

						  		   				   
				     }else {
				           Debug.Log ("Dive");
				           
				     	   ass.GetComponent(CharacterMotor).movement.velocity.y = -Dive;	
				     }
	         	}
	   
		
		}
	

}
}

Nevermind, I figured it out. It only works if the character is airborne because of how the motor is structured. I use that upshot in y velocity for a Spring Object and as a dive attack. Since both naturally require the character to be airborne, I didn’t think too much of it.