[CSharpCallLua]publicdelegateintVec3ParamDelegate(Vector3 p); [CSharpCallLua]publicdelegateintEnumParamDelegate(StringSplitOptions opts); [CSharpCallLua]publicdelegateArray ArrayParamDelegate(Array arr); [CSharpCallLua]publicdelegateintRefOutParamDelegate(refintp1,outintp2); [GCOptimize] [LuaCallCSharp...
可以参考之前的Blog:《xlua入门基础》; //调用端,所有的lua代码都写在LuaCallCSharp.lua文件中publicclassLuaCallCSharp1:MonoBehaviour {voidStart(){ XluaEnv.I.DoString("LuaCallCSharp"); } privatevoidOnDestroy(){ XluaEnv.I.Free(); } } 2.调用C#类 静态类 publicstaticclassTestStatic{publicstatic...
csharp [LuaCallCSharp] public class MyClass { public void MyMethod() { Debug.Log("MyMethod called from Lua"); } } 在Lua中调用C#代码: 实例化一个LuaEnv对象,这是xLua的核心类,用于管理Lua环境。 使用DoString方法执行Lua代码,或者在Lua脚本中通过require加载。 在Lua中,可以通过CS表访问C#命名空间...
CSharpCallLua C#调用lua的情况: 1. 主动获取lua的值 2. lua调用C#端回调,传入lua值 lua能获取到的C#端回调,都是在C#端封装成的lua_CFunction。所以本质还是C#主动获取lua的值。重点是function、table。 function 也就是把function映射到委托,前提是委托标记了[CSharpCallLua]并为其生成了代码(XXXBridge)。例子...
XluaEnv.I.DoString("LuaCallCSharp"); } private void OnDestroy() { XluaEnv.I.Free(); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 2.调用C#类 静态类 public static class TestStatic { public static void ShowName(string name, int id) ...
T Cast() 描述: 把该table转成一个T指明的类型,可以是一个加了CSharpCallLua声明的interface,一个有默认构造函数的class或者struct,一个Dictionary,List等等。 void SetMetaTable(LuaTable metaTable) 描述: 设置metaTable为table的metatable Lua脚本 获取全局变量 ...
LuaDLL; [CSharpCallLua] public interface CsharpCallInterface { // 接口定义属性 int testInt { get; set; } float testFloat { get; set; } string testString { get; set; } bool testBool { get; set; } UnityAction testFun { get; set; } InCsharpCallInterface testInterface { get; set...
Unity Xlua教程 之 C#使用接口获取Lua的内容 1 打开Unity,新建一个空工程,具体如下图 2 在百度上搜索下载XLua,导入Unity工程中,具体如下图 3 在工程中,新建一个脚本,可以命名为“CSharpCallLua”,双击脚本或者右键“Open C# Project”打开脚本,具体如下图 4 在打开的脚本“CSharpCallLua”编写代码,首先...
//lua环境(官方建议全局唯一)LuaEnvenv=null;voidStart(){env=newLuaEnv();env.DoString("require'CsharpCallLua'");stringstr1=env.Global.Get<string>("str");intnumber1=env.Global.Get<int>("number");// int num1 = env.Global.Get<int>("num");//报错 报错如下图 因为这种方法只可以访问全局...
【xlua】This type must add to CSharpCallLua 技术标签: 其他This type must add to CSharpCallLua “目前2.1.14已经兼容2018,但添加了CSharpCallLua 还是报错” 简单记录,帮助和我一样的“星际选手”,,, 解决办法: 1.打开FAQ(https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/fa... 查看...