Unityでフェードアウトするシーン遷移を行いたいのですが、
「28秒後にPanelの透明度を上げる→30秒後にシーン切り替え」
という動作を以下のコードで実装しようとしたところ、
エラーもなくシーンは切り替わるのですが、
フェードができませんでした。
スクリプトは黒いPanelにアタッチしていて、
GetComponent<Image>().color = new Color(red, green, blue, alfa);
alfa += speed;
の部分をUpdateに入れてInvoke("Fade", 28)を消すと、
ゲーム再生直後ちゃんとフェードが起こります。
エラーが出ないので何が問題かわかりません。
どうしたらフェードアウトできるでしょうか。
C#
1using UnityEngine; 2using System.Collections; 3using UnityEngine.SceneManagement; 4using UnityEngine.UI; 5 6public class toGame : MonoBehaviour { 7 8 float alfa; 9 float speed = 0.01f; 10 float red, green, blue; 11 12void Start() { 13 14 red = GetComponent<Image>().color.r; 15 green = GetComponent<Image>().color.g; 16 blue = GetComponent<Image>().color.b; 17 18 Invoke("Fade", 28); 19 Invoke("Load", 30); 20 21 } 22 23 24void Fade(){ 25 26 GetComponent<Image>().color = new Color(red, green, blue, alfa); 27 alfa += speed; 28} 29 30 31void Load () { 32 SceneManager.LoadScene("Game"); 33 } 34 35}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/17 13:45