はじめに
目の前に半透明の板を置く方式で、フェードイン/フェードアウトを実装してみました。
フェード中の判定や、フェード完了コールバックも用意しています。
前提条件
- Unity 5.0.3p3
- Oculus Unity Integration 0.6.0.0
使い方
- OVRFadeコンポーネントをOVRCameraRigにアタッチ
- Fade Materialには、同梱のAlphaFadeを指定して下さい。
- Modeには、Alphaを指定して下さい。
- スクリプトからフェードアウト/フェードインのメソッドをコール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
using UnityEngine; using System.Collections; public class ExampleManager : MonoBehaviour { private OVRFade fade; // Use this for initialization void Start () { fade = FindObjectOfType<OVRFade>(); // 最初にフェードイン. fade.FadeIn(Color.black, 0.5f); } // Update is called once per frame void Update () { // サンプル:色と秒数を指定すると勝手にフェードイン/アウトします. // フェードアウトしてアプリを終了. if(!fade.IsFading() && Input.GetKeyUp(KeyCode.Escape)){ fade.FadeOut(Color.black, 0.5f, delegate { Application.Quit(); }); } // フェードアウトしてシーンを移動. if(!fade.IsFading() && Input.GetKeyUp(KeyCode.Return)){ fade.FadeOut(Color.black, 0.5f, delegate { Application.LoadLevel(Application.loadedLevel); }); } // 3秒かけてホワイトアウト if(Input.GetKeyUp(KeyCode.F1)){ fade.FadeOut(Color.white, 3); } // 1秒かけてホワイトイン if(Input.GetKeyUp(KeyCode.F2)){ fade.FadeIn(Color.white, 1); } // 2秒かけてホワイトアウト if(Input.GetKeyUp(KeyCode.F3)){ fade.FadeOut(Color.black, 2); } // 5秒かけてブラックアウト if(Input.GetKeyUp(KeyCode.F4)){ fade.FadeIn(Color.black, 5); } // 5秒かけてブラックアウト/ブラックイン if(Input.GetKeyUp(KeyCode.F5)){ Debug.Log("Fade Out/In Start."); fade.FadeOutIn(Color.black, 5); } // 3秒かけてピンクアウト/ピンクイン if(Input.GetKeyUp(KeyCode.F6)){ fade.FadeOutIn(new Color(1,0.25f,1), 3); } // フェードアウト中に左に移動. if(Input.GetKeyUp(KeyCode.LeftArrow)){ fade.FadeOut(Color.black, 0.2f, delegate { fade.transform.Translate(-1,0,0); fade.FadeIn(Color.black, 0.2f); }); } if(Input.GetKeyUp(KeyCode.RightArrow)){ fade.FadeOut(Color.black, 0.2f, delegate { fade.transform.Translate(1,0,0); fade.FadeIn(Color.black, 0.2f); }); } } } |