You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.3 KiB
83 lines
2.3 KiB
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class tuio_event : MonoBehaviour
|
|
{
|
|
// Start is called before the first frame update
|
|
public GameObject img;
|
|
public GameObject canvas;
|
|
public UltraCombos.GlobalMKHookInput tuio_input;
|
|
public bool isLocked;
|
|
|
|
List<int> cur_ids = new List<int>();
|
|
List<int> pre_ids = new List<int>();
|
|
|
|
int pre_count;
|
|
int cur_count;
|
|
|
|
void Start()
|
|
{
|
|
cur_count = 0;
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
pre_count = cur_count;
|
|
pre_ids.Clear();
|
|
cur_ids.ForEach(i => pre_ids.Add(i));
|
|
|
|
cur_count = tuio_input.touchCount;
|
|
cur_ids.Clear();
|
|
|
|
for (int i = 0; i < cur_count; i++)
|
|
{
|
|
cur_ids.Add(tuio_input.GetTouch(i).fingerId);
|
|
}
|
|
|
|
if (cur_count > pre_count) // Add
|
|
{
|
|
//Debug.Log("Add");
|
|
for (int i = 0; i < cur_count; i++)
|
|
{
|
|
int f_id = tuio_input.GetTouch(i).fingerId;
|
|
bool isOldTouch = pre_ids.Contains(f_id);
|
|
if (isOldTouch == false)
|
|
{
|
|
GameObject g = Instantiate(img, canvas.GetComponent<Transform>());
|
|
g.name = f_id.ToString();
|
|
//g.GetComponent<movieController>().id = i;
|
|
}
|
|
}
|
|
}
|
|
else if (cur_count < pre_count) // Remove
|
|
{
|
|
isLocked = true;
|
|
//Debug.Log("Remove");
|
|
for (int i = 0; i < pre_count; i++)
|
|
{
|
|
int _id = pre_ids[i];
|
|
bool isExitTouch = !cur_ids.Contains(_id);
|
|
if (isExitTouch)
|
|
{
|
|
//GameObject.Find(_id.ToString()).GetComponent<movieController>().stat = 2;
|
|
Destroy(GameObject.Find(_id.ToString()));
|
|
}
|
|
}
|
|
}
|
|
reset_id();
|
|
isLocked = false;
|
|
Debug.Log(GameObject.Find("RawImage").GetComponent<movieController>().id);
|
|
}
|
|
|
|
void reset_id()
|
|
{
|
|
GameObject[] objs = GameObject.FindGameObjectsWithTag("onFoot");
|
|
//Debug.Log(objs.Length);
|
|
for (int i = 0; i < objs.Length; i++)
|
|
{
|
|
objs[i].GetComponent<movieController>().id = i - 1;
|
|
}
|
|
}
|
|
}
|
|
|