unity版本2018.4
unity自带的EventSyetem物体上的InputModule脚本会导致使用鼠标点击空白区域时,当前选择的物体会丢失,需要修改源码来解决
主要的滚动区域由ScrollView制作
public class BlogScript : MonoBehaviour
{
/// <summary>
/// 设计时在当前屏幕下显示的物体的行数
/// </summary>
public int ItemDesignQuantity = 0;
/// <summary>
/// 目标ScrollView
/// </summary>
public ScrollRect ScrollTarget;
/// <summary>
/// 需要生成的预制体
/// </summary>
public GameObject Prefab;
/// <summary>
/// 滚动步长,通过计算得到
/// </summary>
private float _scrollStep = 0;
/// <summary>
/// 当前滚动区域内的第一个物体的索引
/// </summary>
private int _currentScrollIndex = 0;
/// <summary>
/// 滚动的游戏物体列表
/// </summary>
private List<ScrollItem> _scrollListItem = new List<ScrollItem>();
/// <summary>
/// 需要滚动的数据列表
/// </summary>
public List<string> DataText = new List<string>();
private void Start()
{
//如果只用键盘操纵,不需要添加这个事件,这个事件是让鼠标滚动时也同步刷新_currentScrollIndex
//以免造成不正常的视觉效果
ScrollTarget.onValueChanged.