예제 #1
0
        /// <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);
        }
예제 #2
0
 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);
         }
     }
 }