public void OnDrop(PointerEventData eventData)
 {
     if (eventData.pointerDrag != null)
     {
         SemivowelItemScript draggedObject  = eventData.pointerDrag.GetComponent <SemivowelItemScript>();
         GameObject          overSizeObject = draggedObject.instanceOfObject;
         if (overSizeObject != null)
         {
             // SasVToggle, SasCToggle
             int index = row * 3 + column;
             if (index < 4 && draggedObject.SasCToggle.isOn)
             {
                 overSizeObject.transform.parent = this.transform.GetChild(0).transform.GetChild(0).transform;
                 overSizeObject.GetComponent <CanvasGroup>().blocksRaycasts = true;
                 OverSizePageFourScript overSizeItemScript = overSizeObject.GetComponent <OverSizePageFourScript>();
                 overSizeItemScript.addedToParent = true;
             }
             else if (index > 3 && draggedObject.SasVToggle.isOn)
             {
                 overSizeObject.transform.parent = this.transform.GetChild(0).transform.GetChild(0).transform;
                 overSizeObject.GetComponent <CanvasGroup>().blocksRaycasts = true;
                 OverSizePageFourScript overSizeItemScript = overSizeObject.GetComponent <OverSizePageFourScript>();
                 overSizeItemScript.addedToParent = true;
             }
         }
     }
 }
Exemple #2
0
    public void OnDrop(PointerEventData eventData)
    {
        if (eventData.pointerDrag != null && !this.transform.GetChild(0).GetComponent <Text>().text.Equals(""))
        {
            SemivowelItemScript draggedObject  = eventData.pointerDrag.GetComponent <SemivowelItemScript>();
            GameObject          overSizeObject = draggedObject.instanceOfObject;
            if (overSizeObject != null)
            {
                // Generate a combined item
                SemivowelItemScript semivowelItem = draggedObject;
                GameObject          combinedItem  = (GameObject)Instantiate(anotherItem, this.transform.parent);
                combinedItem.GetComponent <CanvasGroup>().blocksRaycasts = true;
                OverSizePageFourScript combinedScript = combinedItem.GetComponent <OverSizePageFourScript>();
                Phoneme combinedPhoneme = new Phoneme();
                int     newLength       = phoneme.phones.Length + 1;
                combinedPhoneme.phones = new ProtoPhone[newLength];
                Debug.Log(semivowelItem);

                // Fill the combined item according to the panel and toggle
                if (parentIndex < 4)
                {
                    for (int i = 0; i < phoneme.phones.Length; i++)
                    {
                        combinedPhoneme.phones[i] = phoneme.phones[i];
                    }
                    combinedPhoneme.phones[newLength - 1] = semivowelItem.phone;

                    // Combine the semivowel as a part of consonant cluster
                    if (semivowelItem.LallVToggle.isOn)
                    {
                        combinedPhoneme.letters = phoneme.letters + semivowelItem.letter;
                    }
                    else
                    {
                        combinedPhoneme.letters    = phoneme.letters;
                        combinedPhoneme.successing = semivowelItem.letter;
                        if (phoneme.successing != null)
                        {
                            Destroy(combinedItem);
                        }
                    }
                }
                else
                {
                    combinedPhoneme.phones[0] = semivowelItem.phone;
                    for (int i = 0; i < phoneme.phones.Length; i++)
                    {
                        combinedPhoneme.phones[i + 1] = phoneme.phones[i];
                    }

                    if (semivowelItem.FallCToggle.isOn)
                    {
                        combinedPhoneme.letters = semivowelItem.letter + phoneme.letters;
                    }
                    else
                    {
                        combinedPhoneme.letters   = phoneme.letters;
                        combinedPhoneme.preceding = semivowelItem.letter;
                        if (phoneme.preceding != null)
                        {
                            Destroy(combinedItem);
                        }
                    }
                }

                // Fille the text
                string conIPA = "";
                for (int i = 0; i < combinedPhoneme.phones.Length; i++)
                {
                    conIPA += combinedPhoneme.phones[i].IPA;
                }
                combinedScript.IPAText.text       = conIPA;
                combinedScript.letterText.text    = combinedPhoneme.letters;
                combinedScript.frequencyText.text = phoneme.frequency.ToString();
                combinedScript.phoneme            = combinedPhoneme;
                Destroy(overSizeObject);
            }
        }
    }