本日はUnityの小ネタ枠です。
UnityのGradient型で色のグラデーションを利用する方法です。
Gradient
Gradient型は色のアニメーション化のためのグラデーションを表します。
複数のカラーキーを設定して色をアニメーションすることができます。色は0から1範囲で時間が指定されて割り当てられます。
docs.unity3d.com
時間経過などによる色の変化を定義する型であり、Color型にGradient型を使用してグラデーション色を割り当てるような使い方はできません。
サンプルスクリプト
Gradient型を使って色をアニメーションするサンプルスクリプトを作成しました。
・GradientTest.cs
using UnityEngine; using UnityEngine.UI; public class GradientTest : MonoBehaviour { [SerializeField, Tooltip("グラデーション")] private Gradient _gradient; [SerializeField, Tooltip("何秒周期でグラデーションを0~1に変化させるか")] private float _period = 3.0f; [SerializeField, Tooltip("グラデーションを適用するImage")] private Image _image; void Update() { // 現在のアプリ内経過時間を参照し、Gradient型を0~1の範囲でループさせる float t = Mathf.Repeat(Time.time, _period) / _period; _image.color = _gradient.Evaluate(t); } }

Gradient型はInspectorから以下のようにカラーキーを設定してグラデーションを定義できます。



また[mode]を変更するとグラデーションの色の補完方式を変更することもできます。


シーンを再生して動作を確認します。
Colorがグラデーションの定義に応じて変化していく様子が確認できました。


