Lua的TableViewItem

1.看TableViewItem.cs脚本,写了SetIndex,Updata,OnDestroy,所以子类Lua要实现此方法
2.ComeHerItem.lua中,定义类名表,itemTable={},尽量使用GetInstanceID()

ComeHerItem = { }
local this = ComeHerItem;
-- 保存所有节点内同{instanceId={numberTxt=编号,idTxt=徒弟id,nameTxt=徒弟名,getAwardButton=领取状态}....}
this.itemTable = { }     

function ComeHerItem.Awake(gameObject)
    local instanceId = gameObject:GetInstanceID();
    if (this.itemTable[instanceId] == nil) then
        local numberTxt = gameObject.transform:Find("NumberTxt"):GetComponent("Text");
        local idTxt = gameObject.transform:Find("IDTxt"):GetComponent("Text");
        local nameTxt = gameObject.transform:Find("NameTxt"):GetComponent("Text");
        local getAWardButton = gameObject.transform:Find("GetAWardButton"):GetComponent("Button");
        getAWardButton.onClick:AddListener(LuaHelper.LuaFunToUnityAction(bindParam(this.RecourdButtonEvent, getAWardButton)))

        this.itemTable[instanceId] = { numberTxt = numberTxt, idTxt = idTxt, nameTxt = nameTxt, getAWardButton = getAWardButton }
    end
end   

function ComeHerItem.SetIndex(gameObject, index)
    local instanceId = gameObject:GetInstanceID();
    this.itemTable[instanceId].index = index
end

function ComeHerItem.Updata(gameObject, data)
    if (data == nil) then
        return
    end
    local instanceId = gameObject:GetInstanceID();
    this.itemTable[instanceId].data = data
    this.itemTable[instanceId].numberTxt.text = tostring(data.index)
    this.itemTable[instanceId].idTxt.text = tostring(data.idTxt)
    this.itemTable[instanceId].nameTxt.text = data.nameText   
    if (data.isGetState == 0) then
        this.itemTable[instanceId].getAWardButton.interactable = true;
    else
        this.itemTable[instanceId].getAWardButton.interactable = false;
    end
end

function ComeHerItem.RecourdButtonEvent(btnGameObject)
    local btnInstanceId = btnGameObject:GetInstanceID();
    local itemData = nil--通过遍历去得到.记得break
    for instance, item in pairs(this.itemTable) do
        if (item.getAWardButton:GetInstanceID() == btnInstanceId) then
            itemData = item.data
            Debugger.Log("--1-pack=" .. itemData.userId .. "-bei=" .. itemData.idTxt)
            break
        end
    end    
    local package = Msg_pb.GetRewardC2S()
    package.tuijianid = itemData.userId
    package.beituijianid = itemData.idTxt;
     NetUtil.SendBuff(SocketType.HALL,MsgNoC2S.C2S_HALL_GETREWARD,0,package)     
end

function ComeHerItem.OnDestroy(gameObject)
    local instanceId = gameObject:GetInstanceID();
    this.itemTable[instanceId] = nil
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值