private IEnumerator <CoroutinePhase> PlayFadeout(FadePattern m_fade, Direction m_original) { SkinnedMeshRenderer m_temp = m_fade.m_meshRender.GetComponent <SkinnedMeshRenderer>(); if (null != m_temp) { m_temp.material = m_fade.m_fadeMaterial; } else { m_fade.m_meshRender.GetComponent <MeshRenderer>().material = m_fade.m_fadeMaterial; } Color color = m_fade.m_fadeMaterial.color; float m_percentage = 0f; color.a = Mathf.Lerp(m_fade.m_start, m_fade.m_end, m_percentage); while (color.a != m_fade.m_end) { m_percentage += Time.deltaTime / m_fade.m_aniTime; color.a = Mathf.Lerp(m_fade.m_start, m_fade.m_end, m_percentage); m_fade.m_fadeMaterial.color = color; yield return(null); } m_original.GetComponent <Direction>().m_finish = true; CoroutineManager.Instance.Unregister(m_coroutine); }
/// <summary> /// FadeOut을 위한 courutine실행 함수 /// </summary> /// <param name="m_fade"></param> /// <param name="m_original"></param> public void PlayFadeOut(FadePattern m_fade, Direction m_original) { m_original.m_finish = false; m_coroutine = CoroutineManager.Instance.Register(PlayFadeout(m_fade, m_original)); }
/// <summary> /// FadeIn을 위한 corutine 함수 /// </summary> /// <param name="m_fade"></param> /// <param name="m_realmat"></param> /// <param name="m_original"></param> public void PlayFadeIn(FadePattern m_fade, Material m_realmat, Direction m_original) { m_original.m_finish = false; m_coroutine = CoroutineManager.Instance.Register(Playfadein(m_fade, m_realmat, m_original)); }