Unity之xlua热更新踩坑日记(一)

这篇博客详细记录了在Unity中使用xlua进行热更新时遇到的问题,包括Dictionary类型的操作,如根据key获取和设置value,特别指出在不同版本中使用get_Item和set_Item的方法。此外,还涉及了json解析的困扰,string转int的转换方法,以及处理bool类型的字段。最后提到了在Lua中理解并运用一些逻辑运算符。
摘要由CSDN通过智能技术生成

1.Dictionary类型相关操作

1.1根据key获取value

C#:value = dict["key"]

Lua:value = dict:get_Item("key")

1.2设置value

C#:dict["key"] = value

Lua:dict:set_Item("key",value)

官方的FAQ文档的解释是:

## this[string field]或者this[object field]操作符重载为什么在lua无法访问?(比如Dictionary\<string, xxx\>, Dictionary\<object, xxx\>在lua中无法通过dic['abc']或者dic.abc检索值)

因为:1、这个特性会导致基类定义的方法、属性、字段等无法访问(比如Animation无法访问到GetComponent方法);2、key为当前类某方法、属性、字段的名字的数据无法检索,比如Dictionary类型,dic['TryGetValue']返回的是一个函数,指向Dictionary的TryGetValue方法。

如果你的版本大于2.1.11,可以用get_Item来获取值,用set_Item来设置值。要注意只有this[string field]或者this[object field]才有这两个替代api,其它类型的key是没有的。

~~~lua
dic:set_Item('a', 1)
dic:set_I

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值