/// <summary> /// 渐现菜单 /// </summary> /// <param name="targetGO">菜单游戏对象</param> public async Task UIAnim(GameObject target, EUIAnim anim) { float time = UIScaleInTime; switch (anim) { case EUIAnim.FadeOut: time = 0.35f; break; case EUIAnim.ScaleOut: time = 0.2f; break; } await UIUtils.ObjectAnim(target, anim, time); }
public static async CTask ObjectAnim(GameObject target, EUIAnim anim, float time = 0.5f) { if (anim == EUIAnim.None || target == null) { return; } //UI淡入淡出效果 if (anim == EUIAnim.FadeIn || anim == EUIAnim.FadeOut) { Graphic[] comps = target.GetComponentsInChildren <Graphic>(); for (int i = comps.Length; --i >= 0;) { if (anim == EUIAnim.FadeIn) { comps[i].DOFade(0, time).From(); } else { comps[i].DOFade(0, time); } } await CTask.WaitForSeconds(time); } else if (anim == EUIAnim.ScaleIn || anim == EUIAnim.ScaleOut) { if (anim == EUIAnim.ScaleIn) { target.transform.DOScale(0, time).SetEase(Ease.OutBack).From(); await CTask.WaitForSeconds(time); } else { target.transform.DOScale(0, time).SetEase(Ease.InBack); await CTask.WaitForSeconds(time); } } }