Table List Attribute特性:用于在檢查器中將列表和數(shù)組呈現(xiàn)為表。


【ShowIndexLabels】設(shè)置為True,則為每個(gè)元素繪制一個(gè)標(biāo)簽,其中顯示元素的索引。

[TableList(ShowIndexLabels = true)]
public List<SomeCustomClass> TableListWithIndexLabels = new List<SomeCustomClass>()
{
new SomeCustomClass(),
new SomeCustomClass(),
};
【DrawScrollView 】為True,為table添加一個(gè)滾動(dòng)條,并設(shè)置滾動(dòng)條最大高度(MaxScrollViewHeight )和最小高度(MinScrollViewHeight )

[TableList(DrawScrollView = true, MaxScrollViewHeight = 200, MinScrollViewHeight = 100)]
public List<SomeCustomClass> MinMaxScrollViewTable = new List<SomeCustomClass>()
{
new SomeCustomClass(),
new SomeCustomClass(),
};
【ShowPaging】設(shè)置為True,則繪制一個(gè)翻頁的選項(xiàng) 【NumberOfItemsPerPage】則設(shè)置每個(gè)分頁含有的Item數(shù)量,默認(rèn)15個(gè)

[TableList(ShowPaging = true, DrawScrollView = false)]
public List<SomeCustomClass> TableWithPaging = new List<SomeCustomClass>()
{
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
};
輔助性功能
- 【IsReadOnly】在檢查器中不可修改
- 【HideToolbar】隱藏翻頁等工具
- 【CellPadding】每個(gè)Item及屬性的間隔
- 【ScrollViewHeight】固定滾動(dòng)條高度
- 【MinScrollViewHeight】最小滾動(dòng)條高度
- 【MaxScrollViewHeight】最大滾動(dòng)條高度
完整示例代碼
using Sirenix.OdinInspector;
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TableListAttributeExample : MonoBehaviour
{
[TableList(ShowIndexLabels = true)]
public List<SomeCustomClass> TableListWithIndexLabels = new List<SomeCustomClass>()
{
new SomeCustomClass(),
new SomeCustomClass(),
};
[TableList(DrawScrollView = true, MaxScrollViewHeight = 200, MinScrollViewHeight = 100)]
public List<SomeCustomClass> MinMaxScrollViewTable = new List<SomeCustomClass>()
{
new SomeCustomClass(),
new SomeCustomClass(),
};
[TableList(DrawScrollView = false)]
public List<SomeCustomClass> AlwaysExpandedTable = new List<SomeCustomClass>()
{
new SomeCustomClass(),
new SomeCustomClass(),
};
[TableList(ShowPaging = true, DrawScrollView = false)]
public List<SomeCustomClass> TableWithPaging = new List<SomeCustomClass>()
{
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
new SomeCustomClass(),
};
[Serializable]
public class SomeCustomClass
{
[TableColumnWidth(57, Resizable = false)]
[PreviewField(Alignment = ObjectFieldAlignment.Center)]
public Texture Icon;
[TextArea]
public string Description = ExampleHelper.GetString();
[VerticalGroup("Combined Column"), LabelWidth(22)]
public string A, B, C;
[TableColumnWidth(60)]
[Button, VerticalGroup("Actions")]
public void Test1() { }
[TableColumnWidth(60)]
[Button, VerticalGroup("Actions")]
public void Test2() { }
}
}