unity开发小贴士之三 UGUI-Lua Component回收
发布时间:2020-12-14 21:52:32 所属栏目:大数据 来源:网络整理
导读:ugui tolua local test = {} test.b = gameobject test.c = gameobject:GetComponent(typeof(UnityEngine.UI.Button)) 首先调用UnityEngine.GameObject.Destroy(test.b) 如果test这个table也被ToLuaUnRef回收之后,发现 test.c这个引用c#中的Button对象并未
ugui tolua local test = {} test.b = gameobject 首先调用UnityEngine.GameObject.Destroy(test.b) ObjectTranslator中的对象没有释放,应该是你Lua中还引用这这个对象。正常的做法是,保证Lua中的引用及时释放,但是这样会有很多xxx=nil的代码,如果项目开始不注意这些,后期改起来会很烦。我们的做法是在BasePanel中遍历 function BasePanel:cleanVar() for k,v in pairs(self) do if (type(v) == "userdata" or type(v) == "table") and k ~= "gameObject" then self[k] = nil end end end ?关闭UI界面是在OnDestroy()中调用cleanVar() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |