51 lines
1.4 KiB
C#
51 lines
1.4 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Toolset.UI
|
|
{
|
|
/// <summary>
|
|
/// 轮播图子元素
|
|
/// </summary>
|
|
public class CarouselItem : MonoBehaviour
|
|
{
|
|
private CarouselMenu parent;
|
|
private RectTransform rect;
|
|
private Image img;
|
|
private Color clr;
|
|
//[HideInInspector]
|
|
public float v = 0;
|
|
/// <summary>
|
|
/// 初始化
|
|
/// </summary>
|
|
/// <param name="_parent"></param>
|
|
public void Init(CarouselMenu _parent)
|
|
{
|
|
rect = GetComponent<RectTransform>();
|
|
img = GetComponent<Image>();
|
|
parent = _parent;
|
|
clr = img.color;
|
|
}
|
|
/// <summary>
|
|
/// 计算transform
|
|
/// </summary>
|
|
/// <param name="value"></param>
|
|
public void CalculateTrans(float value)
|
|
{
|
|
v += value;
|
|
rect.localPosition = new Vector3(parent.GetPosition(v), rect.localPosition.y, rect.localPosition.z);
|
|
clr.a = parent.GetAlpha(v);
|
|
if (clr.a > 0)
|
|
{
|
|
GetComponent<Image>().raycastTarget = true;
|
|
}
|
|
else
|
|
{
|
|
GetComponent<Image>().raycastTarget = false;
|
|
}
|
|
img.color = clr;
|
|
rect.localScale = new Vector3(parent.GetScale(v), parent.GetScale(v), 1);
|
|
}
|
|
}
|
|
}
|
|
|