最近有个需求,就是要求内容在滑动的时候边界Item透明度要有渐变效果,效果如下
有好的新鲜玩意不妨分享出来,方便自己(备忘)也方便他人!!!
#首先搭建个简单UI
各主要组件属性:
注意相机模式
好了,这样UI方便的准备工作就完成了,接着创建一个入口(挂载)脚本:TestGradientChange
下面展示一些 内联代码片
。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestGradientChange : MonoBehaviour
{
Transform rect;
GameObject go;
TestData2[] datas;
// Start is called before the first frame update
void Start()
{
go = transform.Find("Item").gameObject;
go.SetActive(false);
rect = transform.Find("Scroll View").GetComponent<RectTransform>();
datas = new TestData2[]
{
new TestData2("1","Item1"),
new TestData2("2","Item2"),
new TestData2("3","Item3"),
new TestData2("4","Item4"),
new TestData2("5","Item5"),
new TestData2("6","Item6"),
new TestData2("7","Item7"),
new TestData2("8","Item8"),
new TestData2("9","Item9"),
new TestData2("10","Item10"),
new TestData2("11","Item11"),
new TestData2("12","Item12"),
new TestData2("13","Item13"),
new TestData2("14","Item14"),
new TestData2("15","Item15"),
new TestData2("16","Item16"),
new TestData2("17","Item17"),
new TestData2("18","Item18"),
new TestData2("19","Item19"),
};
Show();
}
private void Show()
{
foreach (var info in datas)
{
GameObject obj = GameObject.Instantiate(go, rect.transform.Find("Viewport/Content"));
obj.transform.Find("Id").GetComponent<Text>().text = info.Id;
obj.transform.Find("Text").GetComponent<Text>().text = info.name;
obj.SetActive(true);
}
ScrollRectHelper.Instance.Init(rect.GetCompo