🌍 Unity/UI & TMP

DoText사용 시 RichText의 Length 문제.

맨텀 2020. 5. 21. 01:57

 

DOText는 아래와 같이 인자를 받는다.

Txt_talk.DOText(string endTargetText, float duration);

 

때문에 사용할 Text의 Length를 사용해서 duration을 결정하곤 하는데, 

문제는 <color="red"> 등과 같이 RichText를 사용할 시에는 보이지않는데 Length에 포함된다는 것.

 

유니티포럼
https://forum.unity.com/threads/rich-text-length.402876/

 

public int TextLength(string richText)
    {
        int len = 0;
        bool inTag = false;
 
        foreach (var ch in richText)
        {
            if (ch == '<')
            {
                inTag = true;
                continue;
            }
            else if (ch == '>')
            {
                inTag = false;
            }
            else if (!inTag)
            {
                len++;
            }
        }
 
        return len;
    }

 

위의 코드로 Length를 구하면 RichText부분을 제외한 길이를 얻을 수 있다.