Skip to content

Instantly share code, notes, and snippets.

@kazumalab
Last active December 16, 2016 15:56
Show Gist options
  • Save kazumalab/028ab1c342c86af9eed22a2d8502cc91 to your computer and use it in GitHub Desktop.
Save kazumalab/028ab1c342c86af9eed22a2d8502cc91 to your computer and use it in GitHub Desktop.
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class FadeManager : MonoBehaviour { // ここでゲームオーバー処理とクリア処理
/// <summary>
/// 基本的にenableFadeをtrueにしたあと、したいフェードのboolをtrueに変える
/// </summary>
public bool enableFade = false;
public bool enableFadeIn = false;
public bool enableFadeOut = false;
public bool enableFadeOn = false;
public float speed = 0.02f;
public Image FadeImage;
private float count = 1f;
private bool enableAlphaTop = false;
public delegate void FadeOutCallback();
public FadeOutCallback fadeoutcallback;
void Start () {
enableFade = true;
enableFadeIn = true;
setAlpha (FadeImage, count);
}
void Update () {
if (enableFadeOn) {
FadeInAndOut (FadeImage);
}
if (enableFadeIn) {
FadeIn (FadeImage);
}
if (enableFadeOut) {
FadeOut (FadeImage);
}
}
void setFadeOutCallback (FadeOutCallback fc) {
this.fadeoutcallback = fc;
}
void setAlpha(Image image,float alpha) {
image.color = new Color (image.color.r, image.color.g, image.color.b, alpha);
}
public void FadeOut(Image image) {
if (enableFade) {
count += speed;
setAlpha (image, count);
if (image.color.a >= 1f) {
enableFade = false;
if (enableFadeOut) {
if(callback != null) callback ();
}
}
}
}
void FadeIn(Image image) {
if (enableFade) {
count -= speed;
setAlpha (image, count);
if (image.color.a <= 0f) {
enableFade = false;
enableFadeIn = false;
}
}
}
void FadeInAndOut(Image image) {
if (enableFade) {
if (!enableAlphaTop) {
count += speed;
} else {
count -= speed;
if (image.color.a <= 0f) {
enableFade = false;
enableFadeOn = false;
enableAlphaTop = false;
}
}
setAlpha (image, count);
if (image.color.a >= 1f) {
enableAlphaTop = true;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment