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;
}
}
}
}
}