XLua 學習筆記

XLua調用CSharp方法--DoString()

LuaEnv luaenv = new LuaEnv();
luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");
luaenv.Dispose();

DoString還可以直接調用Lua

luaEnv.DoString("print('Hello world')");

XLua中自定義Loader

LuaEnv env = new LuaEnv();
env.AddLoader((ref string str) =>
{
	string pt = "print(1234)";
	return System.Text.Encoding.UTF8.GetBytes(pt);
});
env.DoString("require 'xxx'");
env.Dispose();

在DoString中調用require,默認回去走loader,然後加載到lua代碼,並執行。

總結下來CSharp 調用lua就直接用DoString,然後Lua調用C#就直接CS.UnityEngine.....

感覺DoString就是lua解釋器,並且還能作爲C#解釋器,能映射C#中一些函數,並做一些反射調用。

還有一個方法要記一下的:

IPerson p = env.Global.Get<IPerson>("person");

env.Global.Get 可以拿很多東西,包括Function,包括對象,如果這邊是interface的話,就能直接改lua中的對象的值。

後面的學習都在看另一篇文章,地址:https://blog.csdn.net/kouzhuanjing1849/article/details/90415938

自己就不多寫了,一起學習!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章