フェードイン(Imageが透明になる)フェードアウト(徐々に不透明になる)するスクリプトを作成しました。
他のスクリプトでisFadeOut=trueにし、スペースボタン入力でisFadeIn=trueにしているのですが、
isFadeIn=trueにして数秒後に徐々に明るくなったりと、処理が遅いです。
原因は一体何なのでしょうか?
フェードイン、フェードアウトのスクリプト using System.Collections; 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; //透明度を変更するパネルのイメージ GameObject AntenCanvas; void Start() { AntenCanvas = GameObject.Find("AntenCanvas"); fadeImage = GetComponent<Image>(); red = fadeImage.color.r; green = fadeImage.color.g; blue = fadeImage.color.b; alfa = fadeImage.color.a; DontDestroyOnLoad(AntenCanvas); } 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 = 3; TimeCount_2 = 1; void Update() { if (IventStart) //イベント開始。画面上下に黒帯 { TimeCount -= Time.deltaTime; Statuscanvas.SetActive(false); fadecontraller_1.isFadeOut = true; fadecontraller_2.isFadeOut = true; if (TimeCount <= 0) //時間経過でキャラが動き始める { playerScript.rigidbody2D.velocity = new Vector2(3, playerScript.rigidbody2D.velocity.y); //キャラが歩き始める TimeCount_2 -= Time.deltaTime; } if (TimeCount_2 <= 0) //時間経過でキャラが停止 { playerScript.rigidbody2D.velocity = new Vector2(0, playerScript.rigidbody2D.velocity.y); } if (Input.GetKeyDown("space")) { IventStart = false; fadecontraller_1.isFadeIn = true; } } } コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/19 07:47
2019/12/19 08:41
2019/12/19 16:14
2019/12/20 03:50