我的環境配置:Windows 10、Unity 5.3.4f1、Java JDK 1.8.0_51
 
 
文字漸層這效果其實是很常用到,且非常基本的,但可惜的是 UGUI 並沒有這項功能,所以必須自己製作了。
 
不過還好網路上有人製作了該功能,並且分享出來。
但他是繼承 BaseVertexEffect 後並製作漸層的效果,但 BaseVertexEffect 在比較新的 UGUI 中已經不能使用了,系統會要求使用 BaseMeshEffect
 
所以以下是修改過後的版本
 
using UnityEngine;
using UnityEngine.UI;


/// <summary>
/// 該效果為 UGUI Text 文字顏色漸層效果. 
/// </summary>
[AddComponentMenu( "UI/Effects/Gradient" )]
public class TextGradient : BaseMeshEffect
{
    public Color32 topColor = Color.white;
    public Color32 bottomColor = Color.black;


    public override void ModifyMesh( VertexHelper vh )
    {
        float bottomY = -1;
        float topY = -1;

        for ( int i = 0; i < vh.currentVertCount; i++ )
        {
            UIVertex v = new UIVertex();
            vh.PopulateUIVertex( ref v, i );

            if ( bottomY == -1 ) 
                bottomY = v.position.y;
            if ( topY == -1 ) 
                topY = v.position.y;

            if ( v.position.y > topY ) 
                topY = v.position.y;
            else if ( v.position.y < bottomY ) 
                bottomY = v.position.y;
        }


        float uiElementHeight = topY - bottomY;

        for ( int i = 0; i < vh.currentVertCount; i++ )
        {
            UIVertex v = new UIVertex();
            vh.PopulateUIVertex( ref v, i );

            v.color = Color32.Lerp( bottomColor, topColor, (v.position.y - bottomY) / uiElementHeight );
            vh.SetUIVertex( v, i );
        }
    }

}
 
這邊可以直接複製貼上做使用,或者直接點擊文章最下方的腳本下載也可以。
直接將該腳本拉到 Unity 的 Assets 裡面就可以使用了。
 
 
使用方式為:
將 TextGradient 腳本拉到 Unity Assets 底下除了 Editor 資料夾以外的任何位置都可以,或者自己建立一個腳本再將程式碼複製貼上也行
image01.jpg
 
點選有掛載 Text 腳本的物件
image02.jpg
 
在選擇 Component > UI > Effects > Gradient 就可以了
image03.jpg
 
效果如下
image04.jpg
 
 
 
arrow
arrow

    岳 發表在 痞客邦 留言(0) 人氣()