Esempio n. 1
0
    //从淡入到淡出
    public static void FadeInToOut(float _fadeInTime, float afterInDelayTime, float _fadeOutTime, CallBack afterFadeInCallback = null, CallBack afterFadeOutCallback = null, float delay = 0, bool isForceAlpha = false)
    {
        CameraFadeData data  = GetCameraFadeData(CameraFadeType.FadeIn, isForceAlpha, delay, _fadeInTime, afterFadeInCallback);
        CameraFadeData data2 = GetCameraFadeData(CameraFadeType.FadeOut, isForceAlpha, afterInDelayTime, _fadeOutTime, afterFadeOutCallback);

        Instance.StartFadeFunc(data, data2);
    }
Esempio n. 2
0
 private void RunComplete(CameraFadeData data)
 {
     if (data.completeCallBack != null)
     {
         data.completeCallBack();
     }
     if (currentFadeDatas.Contains(data))
     {
         currentFadeDatas.Remove(data);
         cacheData.Add(data);
     }
 }
Esempio n. 3
0
    private static CameraFadeData  GetCameraFadeData(CameraFadeType fadeType, bool isForceAlpha, float delay, float fadeTime, CallBack completeCallBack)
    {
        CameraFadeData data = null;

        if (cacheData.Count > 0)
        {
            data = cacheData[0];
            cacheData.RemoveAt(0);
        }
        else
        {
            data = new CameraFadeData();
        }
        data.SetCameraFadeData(fadeType, isForceAlpha, delay, fadeTime, completeCallBack);
        return(data);
    }
Esempio n. 4
0
    private void StartFadeFunc(params CameraFadeData[] paras)
    {
        if (currentFadeDatas.Count > 0)
        {
            foreach (var item in currentFadeDatas)
            {
                if (item.completeCallBack != null)
                {
                    item.completeCallBack();
                }

                cacheData.Add(item);
            }
            currentFadeDatas.Clear();
        }

        for (int i = 0; i < paras.Length; i++)
        {
            currentFadeDatas.Add(paras[i]);
        }

        CameraFadeData data = paras[0];

        if (data.isForceAlpha)
        {
            if (data.fadeType == CameraFadeType.FadeIn)
            {
                alpha = 0;
            }
            else
            {
                alpha = 1;
            }
        }
        else
        {
            if (isFading)
            {
                data.delay = 0;
            }
        }
        isFading = true;

        float tempTime = data.fadeTime * alpha;

        data.tempFadeCaculateTime = tempTime;
    }
Esempio n. 5
0
    // Update is called once per frame
    private void Update()
    {
        if (currentFadeDatas.Count == 0)
        {
            isFading = false;
            return;
        }

        CameraFadeData data = currentFadeDatas[0];

        if (data.delay > 0)
        {
            data.delay -= Time.deltaTime;
            return;
        }

        if (data.fadeType == CameraFadeType.FadeIn)
        {
            if (data.tempFadeCaculateTime >= data.fadeTime)
            {
                alpha = 1;
                RunComplete(data);
                return;
            }
            data.tempFadeCaculateTime += Time.deltaTime;
        }
        else
        {
            if (data.tempFadeCaculateTime <= 0)
            {
                alpha = 0;
                RunComplete(data);
                return;
            }


            data.tempFadeCaculateTime -= Time.deltaTime;
        }
        alpha = data.tempFadeCaculateTime / data.fadeTime;
    }
Esempio n. 6
0
    //淡出
    public static void FadeOut(float fadeTime, CallBack completeCallBack = null, bool isForceAlpha = false, float delay = 0)
    {
        CameraFadeData data = GetCameraFadeData(CameraFadeType.FadeOut, isForceAlpha, delay, fadeTime, completeCallBack);

        Instance.StartFadeFunc(data);
    }