LuaCallCS
1. 传递C#对象到Lua
XLua在C#维护了两个数据结构,ObjectPool和ReverseMap。
首次传递一个C#对象obj到Lua时,对象被加入到ObjectPool中,并为它创建一个唯一标识objId,建立obj和objId的双向映射。
ObjectPool: objId->obj ReverseMap: obj->objId
如果该对象的类型是第一次传到Lua,还会为类型创建一个元表typeMetatable。文章来源:https://www.toymoban.com/news/detail-714950.html
typeMetatable:包含类成员的访问方法。
把typeMetatable注册到Lua的全局表中,这样就不会被lua gc掉。文章来源地址https://www.toymoban.com/news/detail-714950.html
LUA_REGISTRY: typeFullName->typeMetatab
到了这里,关于XLua中lua读写cs对象的原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!