Xeric UI Action Vessel

提供一些unity上常见UI容器用法。

容器类说明

泛型界面容器

使用ObjectVessel<T>来声名一个可以呈现在界面上的属性其中泛型可以用于在Unity界面上约束目标类型。

这个类不建议进行封装封装后会失去在Inspector界面上的泛型约束功能。

翻页管理器

提供一个FlipPageComponentManager类,其继承于XericFlipPageIndexVesselBase
实现一种基于翻页逻辑的数据虚拟化结构管理器。
父级实现了基础翻页逻辑,而子类实现在此基础上的组件交互逻辑,使用时,需要继承于FlipPageComponentManager再实现数据层功能。
比如下面是一个通过翻页管理器控制Xchart.UITable内数据翻页的基础实例

public class MeasuringPointPageManager : FlipPageComponentManager
{
    public UITable Table; // 表格呈现

    // 页面数据对象
    public class PageMeasuringPointInfo : PageComponentInfo
    {
        // 页面数据对象里包含多个内容数据对象,并会由于数据的增加自动增加页面。
    }
    // 内容数据对象
    public class ItemMeasuringPointInfo : ItemComponentInfo
    {
        public string RiskSourceName = "数据内容";
        // 单个数据条目内容的数据在此定义。
    }

    // 当翻页时,处理翻页数据
    public override void FlipPage(int pageIndex, bool forceRefresh = false)
    {
        base.FlipPage(pageIndex, forceRefresh);

        Table.ClearData();
        var page = Currentpage as PageMeasuringPointInfo;
        foreach (var item in page.itemInfos)
        {
            AddTableRowData(page.pageNumber, item as ItemMeasuringPointInfo);
        }
    }
    // 直接添加一个空数据对象到表格中
    [HorizontalGroup("数据"), Button("添加测试项目")]
    private void AddItem()
    {
        AddItem(new ItemMeasuringPointInfo(),
            () => AddPageLast(new PageMeasuringPointInfo()));
    }
    // 定义一下如何将数据处理为表格格式
    public void AddTableRowData(int pageOffset, ItemMeasuringPointInfo info)
    {
        Table.AddRow(
            (pageOffset + Table.data.Count).ToString(),
            info.RiskSourceName);
    }

}
Description
Xeric界面容器
Readme 433 KiB
Languages
C# 84.8%
ShaderLab 15.2%