2016-11-17 1 views
0

20 줄의 100 자 길이 열이있는 텍스트 UI 구성 요소가 있습니다. 이것은 잘 작동합니다. 너무 오래 TextMeshGenerator에 대한마크 업 태그가있는 Unity UI 텍스트 - "TextMeshGenerator에 너무 긴 문자열"

문자열 : 나는 그들에게 서로 다른 색상을 제공 <color> </color> 태그 내부의 각 문자를 둘러싸하려고하면, 나는 다음과 같은 오류 메시지를 얻을. 문자 잘라 내기.

경우 ArgumentException : 메쉬 이상의 65000 개 정점

태그가 문자 한도 계산에 이유, 또는 정점의 수를 증가 왜 이해가 안 돼요을 가질 수 없습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? Unity 버전 5.4.1f1을 사용하고 있습니다.

답변

0

Unity는 문자 당 4 개의 버텍스/2 개의 삼각형을 사용하고 Rich Text 효과와 Outline/Shadow이 적용되면 중복 된 지오메트리가 있다고 믿습니다 (현재 Outline과 Text.text을 사용하고 있으며 너무 많은 문자를 쉽게 얻을 수 있습니다) 정점 메시지는 20x100 문자보다 훨씬 작습니다.)

사용 사례는 스크롤 활동 로그이며 사례와 약간 다릅니다. 솔루션 사람들은 내 문제를 제안했다 :

  • 사용에 "페이징"시스템 대신하여 온라인 스크롤, 그래서 텍스트의 제한된 양이 주어진 시간에 표시되지만 모든 액세스
  • 사용하십시오 유지를 TextMesh 프로
  • 같은 타사 솔루션은 텍스트가 정점에 압도되지 않을 수 있도록 Scroll View 내용 창에 여러 Text 요소를 추가하고

이 시도하지 않은 스크롤 기능을 유지하기 위해 Content Size Fitter를 사용 이것들은 아마도 무언가 당신을 위해 일할 것입니다.

+0

FWIW, TextMesh Pro를 사용하여 결국 텍스트 교체가되었습니다. 이 구성 요소는 리치 텍스트 문자를 여전히 4 개의 꼭지점을 가진 것으로 취급 할 수 있었기 때문에 큰 텍스트 블록은 약 16k 문자 (~ 65000/4)의 텍스트 구성 요소의 "실제"한도로 제한되었습니다. – Thompson