やまめも

【 ゲーム開発・日々のことについて 】

フェードアウト、フェードイン

UIのImageをフェードアウト、フェードインさせる。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class SpriteFadeOut : MonoBehaviour {
	public float fadeTime = 1f;

	private float FadeOutAlpha = 1f;
	private float FadeInAlpha = 0;
	public Image spImage;


	public static SpriteFadeOut instance = null;
	void Awake(){
		if(instance == null){
			instance = this;
		}
	}

	void Update(){
	}
	void Start () {
		spImage = this.gameObject.GetComponent<Image>();
	}

	public void FadeOut () {
		StartCoroutine(FadeOutWait());
	}
	IEnumerator FadeOutWait(){
		FadeOutAlpha = fadeTime;
		do{
			yield return new WaitForSeconds(0.05f);
			FadeOutAlpha -= 0.2f;
			float alpha = FadeOutAlpha / fadeTime;
			var	 color = spImage.color;
			print(alpha);

			color.a = alpha;
			spImage.color = color;
		}while( FadeOutAlpha > 0);
	}

	public void FadeIn () {
		StartCoroutine(FadeInWait());
	}
	IEnumerator FadeInWait(){
		FadeInAlpha = 0;
		float alpha;
		do{
			yield return new WaitForSeconds(0.05f);
			FadeInAlpha += 0.2f;
			alpha = FadeInAlpha / fadeTime;
			print(alpha);
			var	 color = spImage.color;

			color.a = alpha;
			spImage.color = color;
		}while( FadeInAlpha < 1);
	}
}

[Unity] スプライトをフェードアウトさせる | ftvlog