CultivationOfBrewing/Assets/Scripts/Tools/ToolManager.cs

59 lines
1.8 KiB
C#

using Cysharp.Threading.Tasks;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 工具类
/// </summary>
public static class ToolManager
{
/// <summary>
/// 刷新右侧的滑动条
/// </summary>
/// <returns></returns>
public static async UniTask RefreshScrollView(RectTransform content, ScrollRect scrollRect)
{
await UniTask.Delay(1);
LayoutRebuilder.ForceRebuildLayoutImmediate(content as RectTransform);
scrollRect.verticalNormalizedPosition = 1; // 回到顶部
}
/// <summary>
/// 根据文字数量改变 背景 大小
/// </summary>
/// <param name="contentText"></param>
public static void justImageWidth(TextMeshProUGUI contentText, RectTransform _bg, float width, float height)
{
float preferredWidth = contentText.preferredWidth;
_bg.sizeDelta = new Vector2(preferredWidth + (contentText.text == "" ? 0 : width), _bg.sizeDelta.y);
contentText.GetComponent<RectTransform>().sizeDelta = new Vector2(preferredWidth + (contentText.text == "" ? 0 : width), height);
}
/// <summary>
/// UI面板实现渐显
/// </summary>
/// <param name="canvasGroup"></param>
/// <param name="fadeDuration">速度</param>
public static async UniTask CanvasFadeIn(CanvasGroup canvasGroup , float fadeDuration)
{
//canvasGroup.alpha = 0;
await UniTask.Delay(1);
canvasGroup.DOFade(1f, fadeDuration);
}
/// <summary>
/// UI面板实现渐隐
/// </summary>
/// <param name="canvasGroup"></param>
/// <param name="fadeDuration">速度</param>
public static async UniTask CanvasFadeOut(CanvasGroup canvasGroup, float fadeDuration)
{
await UniTask.Delay(1);
canvasGroup.DOFade(0f, fadeDuration);
}
}