Unity ECS 實(shí)現(xiàn)UGUI 列表行數(shù)據(jù)顯示

功能需求

給列表行填充數(shù)據(jù),可以點(diǎn)擊按鈕輸出行ID

運(yùn)行效果圖:


圖片.png

打印信息:

圖片.png

Unity 版本:Unity 2018.3.4f1 (64-bit)

下面是代碼實(shí)現(xiàn):

MainTaskRowComData

using Unity.Entities;
using System;
using TMPro;
using UnityEngine.UI;

[Serializable]
public struct MainTaskRowComData : ISharedComponentData
{ 
    //ComData
    public TextMeshProUGUI txt_IndexID;
    public TextMeshProUGUI txt_TaskName;
    public Button btn_Edit;
    public Button btn_Delete;

}


public class MainTaskRowComDataProxy : SharedComponentDataProxy<MainTaskRowComData>
{
    public void On_EditClick(TextMeshProUGUI txtid)
    {
        UnityEngine.Debug.Log("on click:" + txtid.text);
    }
}

MainTaskRow_System

using System;
using System.Collections.Generic;
using Unity.Entities;
using UnityEngine;

public class MainTaskRow_System : ComponentSystem
{

    ComponentGroup m_MainGroup;

    protected override void OnCreateManager()
    {
        //base.OnCreateManager();
        //根據(jù)類型找 MainTaskRowComData
        m_MainGroup = GetComponentGroup(typeof(MainTaskRowComData));
        //m_MainGroup.CalculateLength() is 0

    }
    protected override void OnStartRunning()
    {

        //base.OnStartRunning();
        int count = m_MainGroup.CalculateLength();
        Debug.Log("row:" + count);// output count:3

        var lst = m_MainGroup.GetSharedComponentDataArray<MainTaskRowComData>();
        //Debug.Log("lst Length:" + lst.Length);//out put Length 3
        
        for (int i=0;i < lst.Length;i++)
        {
            var row = lst[lst.Length-i-1];
            //
            var dbinfo = GetDBInfo(i);

            int index = i + 1;

            row.txt_IndexID.text = dbinfo.AutoGUID;
            row.txt_TaskName.text = dbinfo.TaskName;
            //
           
        }
        
    }

    private TaskRowDBInfo GetDBInfo(int i)
    {
        List<TaskRowDBInfo> lst = new List<TaskRowDBInfo>();
        TaskRowDBInfo row1 = new TaskRowDBInfo();
        TaskRowDBInfo row2 = new TaskRowDBInfo();
        TaskRowDBInfo row3 = new TaskRowDBInfo();
        //
        row1.AutoGUID = "id1";
        row1.TaskName = "Dev 1";

        row2.AutoGUID = "id2";
        row2.TaskName = "Dev 2";

        row3.AutoGUID = "id3";
        row3.TaskName = "Dev 3";

        lst.Add(row1);
        lst.Add(row2);
        lst.Add(row3);
        //
        return lst[i];
        
    }

 
    protected override void OnUpdate()
    {
       
    }
}

[System.Serializable]
public class TaskRowDBInfo
{
    public string AutoGUID = "0";
    public string TaskName = "";
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,338評(píng)論 0 10
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,355評(píng)論 0 17
  • 簡(jiǎn)介 用簡(jiǎn)單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    JasonShi6306421閱讀 1,352評(píng)論 0 1
  • 簡(jiǎn)介 用簡(jiǎn)單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 6,086評(píng)論 1 13
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,441評(píng)論 6 13

友情鏈接更多精彩內(nèi)容