以下の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/03/03/234357より取得しました。


UnityのGradient型で色のグラデーションを利用する

本日は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がグラデーションの定義に応じて変化していく様子が確認できました。





以上の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/03/03/234357より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14