Ejemplo n.º 1
0
    public void OnSendButtonPressed()
    {
        titleText.text  = inputField.text;
        inputField.text = "";
        string emojiCOde = "";
        int    index     = 0;


        if (emojisOnScene.Count > 0)
        {
            for (int k = 0; k < emojisOnScene.Count; k++)
            {
                Destroy(emojisOnScene[k]);
            }
            emojisOnScene.Clear();
        }

        EmojiName emojiName = EmojiName.happyFace;

        if (titleText.text.Contains("<sprite="))
        {
            int totalEmojiInText = Regex.Matches(titleText.text, "<sprite=").Count;
            for (int j = 0; j < totalEmojiInText; j++)
            {
                for (int i = 0; i < titleText.text.Length; i++)
                {
                    if (titleText.text[i] == '<' && titleText.text[i + 1] == 's' && titleText.text[i + 2] == 'p')
                    {
                        index = i;
                        break;
                    }
                }

                emojiCOde = titleText.text.Substring(index, 10);
                for (int l = 0; l < emojiInfos.Count; l++)
                {
                    if (emojiInfos[l].emojiCode == emojiCOde)
                    {
                        emojiName = emojiInfos[l].emojiName;
                        emoji     = emojiInfos[l].emojiPrefab;
                    }
                }

                LetterPositionTracker.Instance.charIndex = index + 1 - SpaceCounterInString(index);
                LetterPositionTracker.Instance.FindPos();

                titleText.text = titleText.text.Remove(titleText.text.IndexOf(emojiCOde), emojiCOde.Length).Insert(titleText.text.IndexOf(emojiCOde), "        ");
            }
        }
    }
Ejemplo n.º 2
0
    public IEnumerator ShowEmoji()
    {
        string    emojiCOde = "";
        int       index     = 0;
        EmojiName emojiName = EmojiName.happyFace;

        yield return(new WaitForSeconds(0));

        //RecordCenterPositionOfEveryLetter();
        int totalEmojiInText = Regex.Matches(titleText.text, "<sprite=").Count;

        for (int j = 0; j < totalEmojiInText; j++)
        {
            for (int i = 0; i < titleText.text.Length; i++)
            {
                if (titleText.text[i] == '<' && titleText.text[i + 1] == 's' && titleText.text[i + 2] == 'p')
                {
                    index = i;
                    break;
                }
            }

            emojiCOde = titleText.text.Substring(index, 10);
            for (int l = 0; l < emojiInfos.Count; l++)
            {
                if (emojiInfos[l].emojiCode == emojiCOde)
                {
                    emojiName = emojiInfos[l].emojiName;
                    emoji     = emojiInfos[l].emojiPrefab;
                }
            }

            Vector3 bottomRightPosition = titleText.textInfo.characterInfo[index].bottomRight;
            Vector3 bottomLeftPosition  = titleText.textInfo.characterInfo[index].bottomLeft;
            Vector3 topRightPosition    = titleText.textInfo.characterInfo[index].topRight;
            Vector3 topLeftosition      = titleText.textInfo.characterInfo[index].topLeft;
            float   centerX             = (bottomLeftPosition.x + topRightPosition.x) / 2;
            float   centerY             = (bottomLeftPosition.y + topRightPosition.y) / 2;
            Vector3 centerPosition      = new Vector3(centerX, centerY, titleText.transform.position.z);

            LoadPrefab(centerPosition);
            titleText.text = titleText.text.Remove(titleText.text.IndexOf(emojiCOde), emojiCOde.Length).Insert(titleText.text.IndexOf(emojiCOde), "          ");
            titleText.ForceMeshUpdate();
        }
    }