forked from zxl/LaboratoryProtection
90 lines
2.4 KiB
C#
90 lines
2.4 KiB
C#
using Cysharp.Threading.Tasks;
|
|
|
|
using DG.Tweening;
|
|
|
|
using UnityEngine;
|
|
|
|
namespace PMaker.Extension
|
|
{
|
|
public static class GameObjectExtension
|
|
{
|
|
/// <summary>
|
|
/// 显示游戏对象
|
|
/// </summary>
|
|
/// <param name="go"></param>
|
|
public static void Visible(this GameObject go)
|
|
{
|
|
//go.transform.localScale = Vector3.one;
|
|
go.SetActive(true);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 隐藏游戏对象
|
|
/// </summary>
|
|
/// <param name="go"></param>
|
|
public static void InVisible(this GameObject go)
|
|
{
|
|
//go.transform.localScale = Vector3.zero;
|
|
go.SetActive(false);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置游戏对象开闭
|
|
/// </summary>
|
|
/// <param name="go"></param>
|
|
/// <param name="value">显示或隐藏</param>
|
|
public static void SetVisible(this GameObject go, bool value)
|
|
{
|
|
if (value)
|
|
{
|
|
go.Visible();
|
|
}
|
|
else
|
|
{
|
|
go.InVisible();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检测游戏对象开闭
|
|
/// </summary>
|
|
/// <param name="go"></param>
|
|
/// <returns>true:显示, false:隐藏</returns>
|
|
public static bool IsVisible(this GameObject go)
|
|
{
|
|
return go.activeSelf;
|
|
}
|
|
|
|
public static async UniTask Visible(this GameObject go, float duration)
|
|
{
|
|
var canvasGroup = go.ForceGetComponent<CanvasGroup>();
|
|
canvasGroup.alpha = 0;
|
|
await canvasGroup.DOFade(1, duration);
|
|
}
|
|
|
|
public static async UniTask InVisible(this GameObject go, float duration)
|
|
{
|
|
var canvasGroup = go.ForceGetComponent<CanvasGroup>();
|
|
canvasGroup.alpha = 1;
|
|
await canvasGroup.DOFade(0, duration);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取指定组件, 有则Get无则Add
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="go"></param>
|
|
/// <returns></returns>
|
|
public static T ForceGetComponent<T>(this GameObject go) where T : Component
|
|
{
|
|
var component = go.GetComponent<T>();
|
|
if (component == null)
|
|
{
|
|
component = go.AddComponent<T>();
|
|
}
|
|
return component;
|
|
}
|
|
}
|
|
}
|
|
|