🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1387閲覧

シーン移動した後のフェードインの方法 unity

yoshiteru21

総合スコア44

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/10/30 01:57

こちらは、画面を徐々に暗転、明るくしていくスクリプトです。

using

1using System.Collections.Generic; 2using UnityEngine; 3using UnityEngine.UI; //パネルのイメージを操作するのに必要 4 5public class FadeContraller : MonoBehaviour 6{ 7 float fadeSpeed = 0.02f; //透明度が変わるスピードを管理 8 float red, green, blue, alfa; //パネルの色、不透明度を管理 9 10 public bool isFadeOut = false; //フェードアウト処理の開始、完了を管理するフラグ 11 public bool isFadeIn = false; //フェードイン処理の開始、完了を管理するフラグ 12 13 Image fadeImage; //透明度を変更するパネルのイメージ 14 15 void Start() 16 { 17 fadeImage = GetComponent<Image>(); 18 red = fadeImage.color.r; 19 green = fadeImage.color.g; 20 blue = fadeImage.color.b; 21 alfa = fadeImage.color.a; 22 } 23 24 void Update() 25 { 26 if (isFadeIn) 27 { 28 StartFadeIn(); 29 } 30 31 if (isFadeOut) 32 { 33 StartFadeOut(); 34 } 35 } 36 37 void StartFadeIn() 38 { 39 alfa -= fadeSpeed / 4; //a)不透明度を徐々に下げる 40 SetAlpha(); //b)変更した不透明度パネルに反映する 41 if (alfa <= 0) 42 { //c)完全に透明になったら処理を抜ける 43 isFadeIn = false; 44 fadeImage.enabled = false; //d)パネルの表示をオフにする 45 } 46 } 47 48 void StartFadeOut() 49 { 50 fadeImage.enabled = true; // a)パネルの表示をオンにする 51 alfa += fadeSpeed / 4; // b)不透明度を徐々にあげる 52 SetAlpha(); // c)変更した透明度をパネルに反映する 53 if (alfa >= 1) 54 { // d)完全に不透明になったら処理を抜ける 55 isFadeOut = false; 56 } 57 } 58 59 void SetAlpha() 60 { 61 fadeImage.color = new Color(red, green, blue, alfa); 62 } 63} 64 65コード

そしてこちらは何秒後に別のシーンへ移動するように別のスクリプトにいれたものです。

if

1 { 2 TimeCount -= Time.deltaTime; 3 if (TimeCount <= 0) 4 { 5 SceneManager.LoadScene("stage2"); 6 } 7 } 8コード

暗転した後(フェードアウト)、シーンに移動し暗転を徐々に明るく(フェードイン)していきたいのですが、フェードアウトの方はできてもシーンを移動した後のフェードインができません。
どういった方法でフェードインさせるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2019/10/30 02:12

とても雑に言うなら、FadeContrallerのStartにDontDestroyOnLoadを追加、あとは次のシーンに到着した時点(例えば"stage2"にあるGameObjectに付けているStartとか)でisFadeInをtrueにすればいいと思いますが。 「できない」とはどういう意味なのかを追記するとアドバイスがしやすいです(質問は編集出来ます)。 参考:https://teratail.com/help/question-tips
yoshiteru21

2019/10/30 04:22

ありがとうございます。 とりあえず教えていただいたことを試してみようと思います。
guest

回答1

0

自己解決

sakura様の教えていただいた通りに試した結果上手くできました。
ありがとうございました。

投稿2019/10/30 08:12

yoshiteru21

総合スコア44

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問