【Unity】Material のプロパティの値をゆっくり変える


Unity の有料アセット ShaderWeaver を使ってゆっくり表示するということをやりたかったが、本家が手動でゆっくり表示していたのでスクリプトから変更できるようにしました。

本家の動画
Shader Weaver Tutorial 7 - Alpha Node

内容を翻訳されているサイト
【Unity】「Shader Weaver」チュートリアル6 - 少しずつ浮かび上がる文字を作る

シェーダーを設定している Quad に以下のスクリプトを設定

BankruptShaderScript.cs
public class BankruptShaderScript : MonoBehaviour {

    // coroutine を呼び出し
    void Start () {
        StartCoroutine(UpdateBankruptShader());

    }

    IEnumerator UpdateBankruptShader()
    {
        // Material 内部の progress プロパティ値が 2f になるまで繰り返し
        while (this.GetComponent<Renderer>().material.GetFloat("progress") < 2f)
        {
            // Material 内部の progress プロパティの値を 0.01f 加算
            this.GetComponent<Renderer>().material.SetFloat("progress", this.GetComponent<Renderer>().material.GetFloat("progress") + 0.01f);
            // 0.01sec 待つ
            yield return new WaitForSeconds(0.01f);
        }
    }
}

以下のように徐々に表示されます(でてくるのが物騒な文言ですみません。。。)

上記のフォント
FZイモケンピ (108号様)

参考にしたページ
マテリアルのプロパティをスクリプトから変更【Unity】

現場からは以上です。