예제 #1
0
    private void Update()
    {
        for (int i = 0; i < Input.touchCount; i++)
        {
            if (Detect.GetTouchedObj(i, TouchPhase.Began) != null)
            {
                for (int j = 0; j < Detect.GetTouchedObj(i, TouchPhase.Began).Length; j++)
                {
                    //檢查tag
                    if (!Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.CompareTag("CustumeNode"))
                    {
                        continue;
                    }

                    //已被選上=>刪除選取
                    if (SelectedObj.Contains(Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.gameObject))
                    {
                        SelectedObj.Find(SelectedObj => SelectedObj.gameObject == Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.gameObject).GetComponent <SpriteRenderer>().color = originColor;
                        SelectedObj.Remove(Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.gameObject);

                        //取消文字
                        Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.GetChild(0).GetChild(0).GetComponent <TextMeshProUGUI>().text = "";

                        //取消子物件的文字紀錄
                        Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.GetComponent <UntuchableOutsideCamera>().origineText = "";
                    }

                    //選取:
                    else
                    {
                        //紀錄原本的顏色
                        originColor = Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.gameObject.GetComponent <SpriteRenderer>().color;

                        SelectedObj.Add(Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.gameObject);
                        SelectedObj.Find(SelectedObj => SelectedObj.gameObject == Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.gameObject).GetComponent <SpriteRenderer>().color = Color.blue;


                        ShowNodeTimeText(Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.gameObject,
                                         Detect.GetTouchedObj(i, TouchPhase.Began)[j].transform.GetChild(0).GetChild(0).GetComponent <TextMeshProUGUI>());
                    }
                }
            }
        }
    }