Unity3D——将Unity中自定义的类映射到Lua中来调用

xiaoxiao2021-02-28  52

本文以映射自定义类MyClass.cs为例

打开框架后,新建场景

一、创建脚本MyClass.cs如下,名字空间使用“ZHF”

[csharp] view plain copy <span style="font-size:18px;">using System;  using System.Collections;    namespace ZHF {      public class MyClass {          public const bool Zhang = false;      }  }  </span>   二、在Project面板的Assets->LuaFramework->ToLua->Source->Generate目录下新建脚本,名字为ZHF_MyClassWrap.cs,

内容如下所示

[csharp] view plain copy <span style="font-size:18px;">using System;  using LuaInterface;  using ZHF;    public class ZHF_MyClassWrap {      public static void Register(LuaState L) {          L.BeginClass(typeof(ZHF.MyClass), typeof(System.Object));          L.RegFunction("Display", Display);          L.RegConstant("Zhang", 23333);          L.EndClass();      }      [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]      static int Display(IntPtr L) {          try {              ToLua.Push(L, "sad");              return 1;          } catch (Exception e) {              return LuaDLL.toluaL_exception(L, e);          }      }  }</span>   在相同目录下面找到LuaBinder.cs,打开并导入刚刚新建的名字空间“ZHF”,并在Bind函数中加入如下代码:

保存上面的之后然后分别依次点击下面1、2两个框

三、待以上编译完成之后,就开始测试部分了

(1)按照以往的习惯,新建一个测试的脚本,挂载在场景中的一个空物体上,脚本如下所示:

(2)lua脚本内容已经存放位置如下所示,脚本名字是LuaTest.lua:

LuaTest.lua存放路径(注意这里和C#的测试脚本的路径对应)

四、运行

转载请注明原文地址: https://www.6miu.com/read-45794.html

最新回复(0)