Hello my fellow Unities. I’m developing a 2D mobile game using touch. I’m trying to make it so that you can only hold down one finger on the screen when you do the player will follow the position on where you touch, so when you move your finger over the screen the object follows. But I have a problem!
If I touch the screen on different location quickly the object will swap over to the position where i pressed, how can I make the ball just follow the finger when I hold down on the screen and not jump between position when I press one point of the screen and then lift the finger of the screen to press another position of the mobile screen?? Any code examples?
I would also like it so that when the player has removed their finger of the screen they must touch the characters collider to make it moving again. Note that I’m currently using the “finger input” as a mouse position, so if the game was playable on a PC it would follow a mouseposition, is there any better way to do this? Should I use a raycast?
Here’s the code for the player following the finger:
using UnityEngine;
using System.Collections;
public class MoveScript : MonoBehaviour {
public GameObject character;
public float speed = 500.0f;
void Start()
{
Input.multiTouchEnabled = false;
}
void Update ()
{
if(Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector3 target = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y, 10.0f));
character.transform.Translate(Vector3.MoveTowards(character.transform.position, target, speed * Time.deltaTime) - character.transform.position);
}
}
}