シーン移動した後のフェードインの方法 unity
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 88
こちらは、画面を徐々に暗転、明るくしていくスクリプトです。
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; //パネルのイメージを操作するのに必要
public class FadeContraller : MonoBehaviour
{
float fadeSpeed = 0.02f; //透明度が変わるスピードを管理
float red, green, blue, alfa; //パネルの色、不透明度を管理
public bool isFadeOut = false; //フェードアウト処理の開始、完了を管理するフラグ
public bool isFadeIn = false; //フェードイン処理の開始、完了を管理するフラグ
Image fadeImage; //透明度を変更するパネルのイメージ
void Start()
{
fadeImage = GetComponent<Image>();
red = fadeImage.color.r;
green = fadeImage.color.g;
blue = fadeImage.color.b;
alfa = fadeImage.color.a;
}
void Update()
{
if (isFadeIn)
{
StartFadeIn();
}
if (isFadeOut)
{
StartFadeOut();
}
}
void StartFadeIn()
{
alfa -= fadeSpeed / 4; //a)不透明度を徐々に下げる
SetAlpha(); //b)変更した不透明度パネルに反映する
if (alfa <= 0)
{ //c)完全に透明になったら処理を抜ける
isFadeIn = false;
fadeImage.enabled = false; //d)パネルの表示をオフにする
}
}
void StartFadeOut()
{
fadeImage.enabled = true; // a)パネルの表示をオンにする
alfa += fadeSpeed / 4; // b)不透明度を徐々にあげる
SetAlpha(); // c)変更した透明度をパネルに反映する
if (alfa >= 1)
{ // d)完全に不透明になったら処理を抜ける
isFadeOut = false;
}
}
void SetAlpha()
{
fadeImage.color = new Color(red, green, blue, alfa);
}
}
コード
そしてこちらは何秒後に別のシーンへ移動するように別のスクリプトにいれたものです。
{
TimeCount -= Time.deltaTime;
if (TimeCount <= 0)
{
SceneManager.LoadScene("stage2");
}
}
コード
暗転した後(フェードアウト)、シーンに移動し暗転を徐々に明るく(フェードイン)していきたいのですが、フェードアウトの方はできてもシーンを移動した後のフェードインができません。
どういった方法でフェードインさせるのでしょうか?
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 89.99%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
sakura_hana
2019/10/30 11:12
とても雑に言うなら、FadeContrallerのStartにDontDestroyOnLoadを追加、あとは次のシーンに到着した時点(例えば"stage2"にあるGameObjectに付けているStartとか)でisFadeInをtrueにすればいいと思いますが。
「できない」とはどういう意味なのかを追記するとアドバイスがしやすいです(質問は編集出来ます)。
参考:https://teratail.com/help/question-tips
yoshiteru21
2019/10/30 13:22
ありがとうございます。
とりあえず教えていただいたことを試してみようと思います。