2016-11-17 50 views
0

我有一個Text UI組件,其中有20行100個字符長的列。這工作正常。但是,如果我嘗試每個字符封裝內<color> </color>標籤,給他們不同的顏色,我收到以下錯誤信息:具有標記標籤的Unity UI文本 - 「TextMeshGenerator的字符串太長」

字符串太長TextMeshGenerator。切斷字符。

的ArgumentException:網不能有超過65000個頂點

我不明白,爲什麼標籤對字符的限制數,或者他們爲什麼增加頂點的數量。

什麼是解決這個問題的最好方法?我正在使用Unity版本5.4.1f1。

回答

0

我相信Unity會爲每個字符使用4個頂點/ 2個三角形,並且在應用時富文本效果和輪廓/陰影效果會重複幾何圖形(我目前正在使用Outline和Text.text並且可以很容易地獲得太多 - 頂點消息的字符數要比20x100字符多得多)。

我的用例是一個滾動活動日誌,與您的情況略有不同。解決方案的人都建議我的問題:

  • 使用「呼叫」系統,而不是通過線滾動,使文本的數量有限,顯示在任何給定的時間,但是這一切仍然可以訪問
  • 使用像TextMesh臨
  • 第三方解決方案添加多個Text元素到Scroll View內容的窗口,所以沒有文字可以用頂點不堪重負,並使用Content Size Fitter保持滾動功能

沒有嘗試這些,但也許有些東西會爲你工作。

+0

FWIW,我結束了使用TextMesh Pro,它有自己的文本替換。該組件能夠將富文本字符視爲仍然只有4個頂點,所以我的大文本塊受到Text組件「真實」限制約16k個字符(〜65000/4)的限制。 – Thompson