Do something when holding finger on screen mobile
I can't figure out how to create a script that when I press the screen and hold, something happens, and when I release my finger, that something stops happening. What I want to do is that when I press and hold, a 2d object with rigidbody2D goes up and when I am not pressing, the object goes down.
Here is a quick video of what I'm trying to achieve:
https://www.youtube.com/watch?v=IyRDnIfNQIo
So far I've found this script that tells the game when the screen is pressed (I think):
using UnityEngine;
using System.Collections;
public class ChangeGravity : MonoBehaviour {
private float holdTime = 0.8f; //or whatever
private float acumTime = 0;
void Update()
{
if (Input.touchCount > 0)
{
acumTime += Input.GetTouch(0).deltaTime;
if (acumTime >= holdTime)
{
gameObject.GetComponent<Rigidbody2D>().gravityScale = -1;
}
if (Input.GetTouch(0).phase == TouchPhase.Ended)
{
acumTime = 0;
}
}
}
}
I thought of changing the gravity scale to -1 in the rigidbody2D every time the screen is pressed and then when I release the gravity scale changes back to 1 but I can't get it to work. The script is attached to a 2d gameObject with a rigidbody2D.
Thanks for the Help :)
Your answer
Follow this Question
Related Questions
touch of the screen interacts along with buttons on the screen 1 Answer
Simulated Touchscreen of the new input system problems 0 Answers
How can I block Physical Raycasts from going through UI Elements? 0 Answers
ScreenToWorldPoint on One Axis? 0 Answers
How can a make on click jump small but if a person hold button jump higher. is for mobile. 1 Answer