@daaoling
2017-01-08T07:45:30.000000Z
字数 1148
阅读 2001
Xlua 热更新
Define Target Class
[Hotfix]public class HotfixTest : MonoBehaviour {LuaEnv luaenv = new LuaEnv();public int tick = 0; //如果是private的,在lua可以用反射来访问// Update is called once per framevoid Update () {if (++tick % 50 == 0){Debug.Log(">>>>>>>>Update in C#, tick = " + tick);}}}
How to fix
void OnGUI(){if (GUI.Button(new Rect(10, 100, 300, 150), "Hotfix")){luaenv.DoString(@"xlua.hotfix(CS.HotfixTest, 'Update', function(self)self.tick = self.tick + 1if (self.tick % 50) == 0 thenprint('<<<<<<<<Update in lua, tick = ' .. self.tick)endend)");}}
类
函数/变量(属性,事件)
请问 hotfix 子类中重载父类的方法
https://github.com/Tencent/xLua/issues/35
父类中有个 :public virtual void Awake(){Debug.Log("name" + gameObject.name);}子类中重载:public override void Awake(){base.Awake();Debug.Log("testpanel awake===");}我在hotfix 这个子类的Awake时:xlua.hotfix(CS.TestPanel, 'Awake', function()print('<<<<<<<<Awake in lua')end)这里,有什么办法还可以执行到父类的Awake。目前没提供。。hotfix的话,你把父类逻辑也在lua实现就可以了。就是在hotfix的时候把父类的这个方法里面的逻辑也写到Lua里面?以后会有提供么?想了下,貌似很难用很常规的办法提供。