這次來寫一篇關於 TextmeshPro 的擴展應用。有用文字系統的夥伴,相信一定對於 TextmeshPro 不陌生。由於它的多樣性文字效果,使得他幾乎專案當中是必備的存在。 然而 TextmeshPro 默認的漸層模式卻也是稍有侷限,只能接受上下 2種 不同得顏色的漸變效果,有時候不見得能夠符合需求。 因此這次則對漸層的方面做出擴展,來讓 TextmeshPro 能更支援更多的顏色漸變。 從默認的漸變模式的Shader可以得知,由於默認的漸變是藉由 頂點色染色 的緣故,因此對於一片面來說只有4個頂點,所以最多只能做到 上下 或是 左右 的漸變變化。 對此則可以運用給予漸層貼圖的方式讓它的漸變能支援更多的顏色變化。以下是使用 Gradient 動態產生建成貼圖。 Texture2D GenerateTextureFromGradient (Gradient gradient, int width = 64, int height =1 ) { Texture2D texture = new Texture2D(width, height, TextureFormat.RGBA32, false); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { float t = (float)x / (width - 1); Color color = gradient.Evaluate(t); texture.SetPixel(x, y, color); } } texture.wrapMode = TextureWrapMode.Clamp; texture.Apply(); return texture; } 再來,我們可以利用頂點色作為UV的辦法將貼圖平鋪到文字上面。由於已經有