@daaoling
2017-01-08T15:45:30.000000Z
字数 1148
阅读 1876
Xlua
热更新
Define Target Class
[Hotfix]
public class HotfixTest : MonoBehaviour {
LuaEnv luaenv = new LuaEnv();
public int tick = 0; //如果是private的,在lua可以用反射来访问
// Update is called once per frame
void 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 + 1
if (self.tick % 50) == 0 then
print('<<<<<<<<Update in lua, tick = ' .. self.tick)
end
end)
");
}
}
类
函数/变量(属性,事件)
请问 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里面?以后会有提供么?
想了下,貌似很难用很常规的办法提供。