unity循環UI 無限卷軸插件EnhancedScroller使用

EnhancedScroller  無限循環卷軸使用

最近做了一個拍攝定格動畫軟件,其中重要的部分就是圖片的timeline部分   就是圖片序列幀   想用卷軸視圖來做。

Scroll View(卷軸視圖)的使用非常普遍,但要面臨的一個問題是,當列表有大量元素時,性能會非常低下。

當我有兩千張圖片時,會造成卡頓。

下面介紹一下EnhancedScroller 插件,他的作用可以將列表中的元素循環使用。

(因爲我是在做好的源代碼上覆制下來的,有些不全面請見諒  有問題可以聯繫我上方的聯繫方式)

下面來看下如何使用

首先我們瞭解一下這個插件,這個插件是典型的MVC架構的插件

Model——View——Controller

1.創建數據模型

using UnityEngine;
public class PlayerData  {
	public int posindex;
	public int picname;
	public Texture texSst;
	public bool t;
}

2 創建UI視圖控制腳本

public class PlayerCellView : EnhancedScrollerCellView
{

    private PlayerData _data;
    public Text picnameindex;
    
    public void SetData(PlayerData data)
    {
        _data = data;
        RefreshCellView();

    }

3. 創建控制器

public class PlayerScrollerController : GameManager, IEnhancedScrollerDelegate
{


    public static PlayerScrollerController _instance = null;
    public List<PlayerData> _data;
    List<PlayerData> recordcopydata = new List<PlayerData>();
    public EnhancedScroller myScroller;
    List<PlayerData> pastepldata = new List<PlayerData>();
    public PlayerCellView playerCellViewPrefab;
    public EnhancedScroller.TweenType myScrollerTweenType = EnhancedScroller.TweenType.immediate;
    
  public int GetNumberOfCells(EnhancedScroller scroller)
    {
        //throw new System.NotImplementedException();

        return _data.Count;
    }

    public float GetCellViewSize(EnhancedScroller scroller, int dataIndex)
    {
        //throw new System.NotImplementedException();
        // 返回列表UI元素的高度    這個值要根據實際UI大小來填寫
        return 120f;
    }

    public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex)
    {
        //throw new System.NotImplementedException();
        //在這裏加載列表中的UI元素 初始化 設置按鈕事件回調
        PlayerCellView cellView = scroller.GetCellView(playerCellViewPrefab) as PlayerCellView;
        cellView.SetData(_data[dataIndex]);
        //cellView.transform.Rotate(camRot);
        return cellView;
    }

接下里,我們創建卷軸視圖UI

創建scroll view 然後添加一個Enhanced Scroller組件   並且添加一個Mask蒙版

 

在Content下面創建一個空物體,命名爲cellview   在cellview下添加ui控件  在實際使用中,可以根據需求任意添加UI控件,

添加腳本playcellview   最後將cellview保存爲Prefab

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章