内容へ移動
ユーザ用ツール
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
現在位置:
Home
»
wiki
»
Unity
»
Tips
»
uGUIでテキストをグラデーションさせる
トレース:
wiki:unity:tips:204
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== uGUIでテキストをグラデーションさせる ====== {{:wiki:unity:tips:20160716000.png?300|}} uGUIのテキストに対して、グラデーションを適用させます。 <code csharp> //=========================================================================== //! //! @file GradientColor.cs //! @brief uGUI用グラデーション コンポーネント. //! //=========================================================================== namespace UnityEngine.UI { [AddComponentMenu("UI/Effects/Custom/Gradient", 14)] public class GradientColor : BaseMeshEffect { [SerializeField] [Range(-1.5f, 1.5f)] public float Offset = 0f; [SerializeField] private Color32 TopColor = Color.white; [SerializeField] private Color32 BottomColor = Color.black; protected GradientColor() { } //------------------------------------------------------------- //! エフェクト計算. //------------------------------------------------------------- private void ModifyVertices(VertexHelper vh) { UIVertex v = new UIVertex(); float fRate = 0.0f; int flipIndex = 0; for (int i = 0; i < vh.currentVertCount; i++) { vh.PopulateUIVertex(ref v, i); if (flipIndex == 0 || flipIndex == 1) { fRate = 1.0f; } else { fRate = 0.0f; } if (++flipIndex >= 4) { flipIndex = 0; } v.color = Color32.Lerp( BottomColor, TopColor, fRate + Offset); vh.SetUIVertex(v, i); } } //------------------------------------------------------------- //! エフェクト適用. //------------------------------------------------------------- public override void ModifyMesh(VertexHelper vh) { if (!IsActive()) return; ModifyVertices(vh); } } } </code> ====== 使い方 ====== Textコンポーネントが割り当てられているGameObjectに対して、 AddComponent UI ⇒ Effect ⇒ Custom ⇒ Gradient で追加するだけです。
Permalink
wiki/unity/tips/204.txt
· 最終更新: 2016/07/16 14:28 by
step
ページ用ツール
ログイン
文書の表示
文書の先頭へ
印刷
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
oeffentlich