结构是普通的滚动视图结构
选项锚点设置情况 为左上角对齐
脚本
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
/*
该脚本应该挂载在滚动视图的选项中
*/
[RequireComponent(typeof(Button))]
public class Roll : MonoBehaviour
{
Sequence changedColor;
void Start()
{
//一个动画序列
//引入DoTween插件即可解决报错
changedColor = DOTween.Sequence();
changedColor.Append(GetComponent<Image>().DOColor(Color.blue, 0.1f));
changedColor.Append(GetComponent<Image>().DOColor(Color.white, 1f));
changedColor.SetAutoKill(false);
changedColor.Pause();
GetComponent<Button>().onClick.AddListener(() =>
{
changedColor.Restart();
Transform trans = transform.parent;
//直接操作选项的父节点改变位置
//可选操作 也可以去掉可以得到其他效果 :
//减去 trans.root.GetComponent<RectTransform>().sizeDelta.y / 2
//根节点的显示高度一般刚好能滚动到中心
trans.DOLocalMoveY(Mathf.Abs(transform.localPosition.y) - trans.root.GetComponent<RectTransform>().sizeDelta.y / 2, 1f);
});
}
}