LoginSignup
1
2

More than 5 years have passed since last update.

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

Posted at

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);
        }
    }
}

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

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

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

現場からは以上です。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2