edo_m18 さんの [Unity] Image Effectでフェードアウト を参考にさせていただいてフェードアウトを実装しようとしたのだけれど、Image Effect を Unity のどのメニューから設定すれば良いのか、入り口の段階で詰まってしまったので、そのメモです。
環境
- Unity 5.5.0f3
プロジェクト新規作成
プロジェクトを新規作成したときの Hierarchy, Project タブの状態は以下のようになっています(下図)。
Fader.cs スクリプトの作成して Main Camera にアタッチ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Fader : MonoBehaviour
{
[SerializeField]
Material m_Material;
void OnRenderImage(RenderTexture src, RenderTexture dest)
{
Graphics.Blit(src, dest, m_Material);
}
}
Fader.cs スクリプトを Main Camera にドラッグドロップ(アタッチ)します(下図)。
マテリアルを新規作成
Project タブの Create メニューから Material を選択します(下図)。
作成したマテリアルに FaderMaterial という名前を付けました。Main Camera にアタッチしている Fader.cs の Material フィールドに FaderMaterial を設定します(下図)。
Image Effect Shader を新規作成
Project タブの Create メニューから Shader -> Image Effect Shader を選択します(下図)。
作成した Image Effect Shader に FaderShader という名前を付けました。この FaderShader を FaderMaterial にドラッグドロップします(下図)。
ShaderFader をダブルクリックして、frag 関数を書き換えます。
fixed4 frag (v2f i) : SV_Target
{
fixed4 col = tex2D(_MainTex, i.uv);
fixed4 black = 1 - fixed4(_Time.yyy / 2, 1);
col *= black;
return col;
}
以上で設定は完了です。Unity の実行ボタンを押すと、フェードアウトします。やったね!
最後に、edo_m18 さんに感謝いたします。