- Home /
Touch Input with Event Trigger. How to handle with it properly.
Hello Community,
Since this is my first post I wanted to say hello.
As every beginner developer I have a lot of problems. Below one of them:
I wrote simple script to control my 'Player' object:
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour {
public float jumpVelocity = 10;
private Transform groundCheck;
private Animator anim;
private Rigidbody2D rigidbody2D;
private bool grounded;
private Physics2D gravity;
[SerializeField] private LayerMask whatIsGround;
const float groundedRadius = .2f;
void Awake () {
// Setting up references.
groundCheck = transform.Find("GroundCheck");
anim = GetComponent<Animator>();
rigidbody2D = GetComponent<Rigidbody2D>();
}
// Use it for Graphic & Input
void Update () {
}
//Physics and ground check
void FixedUpdate () {
grounded = false;
Collider2D[] colliders = Physics2D.OverlapCircleAll(groundCheck.position, groundedRadius, whatIsGround);
for (int i = 0; i < colliders.Length; i++)
{
if (colliders[i].gameObject != gameObject)
grounded = true;
}
}
//Jump function
public void Jump () {
if (grounded)
rigidbody2D.velocity = jumpVelocity * Vector2.up;
}
//Gliding function
public void GlideON () {
rigidbody2D.gravityScale = 1;
Debug.Log ("Graviti is on");
}
public void GlideOFF () {
rigidbody2D.gravityScale = 0;
Debug.Log ("Graviti is off");
if (!grounded) {
rigidbody2D.velocity = ( -jumpVelocity / 10 ) * Vector2.up;
}
}
}
To operate touch screen I used GUI function like this:
What I want to achieve:
One click - Player jump
Hold button - Player starts glide.
Player can not glide when he's grounded.
It does not matter whether I start from 'PointerClick' or 'PointerDown'. If player is grounded the first action should be 'Jump' always.
If we start with 'PointerDown', Player should jump and after reaching the maximum height he starts glide.
If we start with 'PointerClick' Player should jump.
If Player is not grounded and we want to start glide - we have to touch screen and hold it.
Where is the problem:
When I start with 'PointerDown', my Player begins infinite jump until 'PointerUp'.
I would be grateful for your help and suggestions.
Your answer
Follow this Question
Related Questions
Store/Stack Items 0 Answers
Button as a child of a button 0 Answers
How can I know when the user slide his finger? 0 Answers
fixed the problem 2 Answers
Android Plugin Help 1 Answer