baobao
3/28/2017 - 1:34 PM

VerticalScroll.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// このコンポーネントをCameraコンポーネントがアタッチされているGameObjectにくっつけます
public class VerticalScroll : MonoBehaviour 
{
    [SerializeField] Shader m_shader;
    [SerializeField] float m_speed = 0.005f;
    Material m_mat;
    
    // イメージエフェクトはOnRenderImage関数内で処理を書きます
    void OnRenderImage (RenderTexture src, RenderTexture dest)
    {
        if (m_mat == null)
        {
            m_mat = new Material(m_shader);
            // Materialが再生が終了したら破棄されるようにHideFlagsを設定する
            m_mat.hideFlags = HideFlags.DontSave;
        }
        // Shaderの_ScrollValue変数に値を渡す
        m_mat.SetFloat("_ScrollValue", (float)Time.frameCount * m_speed);
        Graphics.Blit(src, dest, m_mat);
    }
}