Skip to content

Conversation

@xuxingLa
Copy link

创建新的蓝图对象的时候。 metatable不直接使用 modulename对应的lua的metatable, 而是以 classname 和 modulename拼接为KEY 来找metatable。 比如蓝图类 B1, B2 都绑定了lua L1. 那蓝图B1创建的时候,去全局找一下 "B1_L1" 的metatable。 没有的话就创建一个。 这样只要是B1绑定L1的。都使用 B1_L1 的metatable了。 B2绑定L1的就使用 B2_L1的metatable。 (修复不同的蓝图类绑定同一个lua类 导致 metatable 内容错误)

@rowechien
Copy link
Collaborator

@xuxingLa 谢谢你的提交,我浏览了下代码,是把metatable里的所有东西都复制到新生成的metatable里了对吗?
另外,int32 Type = GetBindMetatable(L, ModuleName, TCHAR_TO_ANSI(*Object->GetName())); 这里的TCHAR_TO_ANSI(*Object->GetName())是不是要换成ClassName?

xiejiangzhi added a commit to xiejiangzhi/UnLua that referenced this pull request Nov 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants