Hey guys I need help. I created this code to help detect swipe direction input, then spawn arrows if they swiped in the direction of the previous arrow.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class AllTogether : MonoBehaviour {
private float fingerStartTime = 0.0f;
private Vector2 fingerStartPos = Vector2.zero;
private bool isSwipe = false;
private float minSwipeDist = 5.0f;
private float maxSwipeTime = 0.0f;
public List<GameObject> prefabList = new List<GameObject>();
public GameObject ArrowUp;
public GameObject ArrowDown;
public GameObject ArrowLeft;
public GameObject ArrowRight;
// Use this for initialization
void Start () {
Spawner ();
}
// Update is called once per frame
void Update () {
if (Input.touchCount > 0) {
foreach (Touch touch in Input.touches) {
switch (touch.phase) {
case TouchPhase.Began:
isSwipe = true;
fingerStartTime = Time.time;
fingerStartPos = touch.position;
break;
case TouchPhase.Canceled:
isSwipe = false;
break;
case TouchPhase.Ended:
float gestureTime = Time.time - fingerStartTime;
float gestureDist = (touch.position - fingerStartPos).magnitude;
if (isSwipe && gestureTime < maxSwipeTime && gestureDist > minSwipeDist) {
Vector2 direction = touch.position - fingerStartPos;
Vector2 swipeType = Vector2.zero;
if (GameObject.Find ("Right") != null) {
if (swipeType.x != 0.0f) {
if (swipeType.x > 0.0f) {
Destroy (GameObject.FindWithTag ("Arrow"));
Spawner ();
}else {
GUI.Label (new Rect (0, 0, Screen.width, Screen.height), "You Lost");
}
}
if (GameObject.Find ("Left")!= null){
if (swipeType.x != 0.0f) {
if (swipeType.x > 0.0f) {
GUI.Label (new Rect (0, 0, Screen.width, Screen.height), "You Lost");
}else {
Destroy (GameObject.FindWithTag ("Arrow"));
Spawner ();
}
}
if (GameObject.Find ("Up") != null){
if (swipeType.y != 0.0f) {
if (swipeType.y > 0.0f) {
Destroy (GameObject.FindWithTag ("Arrow"));
Spawner ();
}else {
GUI.Label (new Rect (0, 0, Screen.width, Screen.height), "You Lost");
}
}
if (GameObject.Find ("Down") != null) {
if (swipeType.y != 0.0f) {
if (swipeType.y > 0.0f) {
GUI.Label (new Rect (0, 0, Screen.width, Screen.height), "You Lost");
}else{
Destroy (GameObject.FindWithTag ("Arrow"));
Spawner ();
}
}
}
}
}
}
}
break;
}
}
}
}
void Spawner(){
prefabList.Add(ArrowUp);
prefabList.Add(ArrowDown);
prefabList.Add(ArrowLeft);
prefabList.Add(ArrowRight);
int prefabIndex = UnityEngine.Random.Range(0,4);
Instantiate(prefabList[prefabIndex], new Vector3(0, 1, 10),Quaternion.Euler (0,0,0));// This one spawns it
}
}
But for some reason it doesn’t work. It has no arrows, but it doesn’t seem to take ANY input in when the game is built. I even added a Touch Input Module and a Standalone Input Module. Nothing seems to be working… Any help would be truly appreciated.