C#与XLua的交互基础

持续补充,欢迎大佬直接教学

主要参考文档:https://blog.csdn.net/xmx5166/article/details/90712888

C#调用XLua

LuaEnv.DoString("require'LuaScript'");//直接加载Lua脚本,需要放在Resources文件夹下
LuaEnv.DoString("luaCode");//直接敲代码
LuaEnv.DoFile("filePath");//执行filePath下的XLua脚本

LuaEnv.Global.Get<T>("name");//获取类型为T(C#类型),名字为name的Lua变量(所作改变不会映射到Lua)
//若是变量类型是表,则需创建一个含有无参构造函数的类,类这种有和表中元素对应的公有属性,可以多或少
//采用映射到接口的方式要在接口上面打上[CSharpCallLua]标签生成生成代码,所作改变会映射到Lua
//还可映射到Dictionary<,> List<>(有无key),和ref LuaTable

LuaEnv.Tick();//清除Lua未手动释放的LuaBase对象
LuaEnv.Dispose();//注销Lua虚拟机

XLua调用C#

--注释单行
--[[ 注释块]]--
--new出来的C#对象:也会出现在场景中,对象的名称没有给定就会显示默认的new GameObject
obj = CS.UnityEngine.GameObject();
obj = CS.UnityEngine.GameObject('name')--访问静态属性和方法:使用点号
obj = CS.UnityEngine.GameObject
print('UnityEngine.Time.deltaTime:',CS.UnityEngine.Time.deltaTime) --读静态属性
CS.UnityEngine.Time.timeScale = 0.5 --写静态属性
print('hello world',GameObject.Find('Main Camera')) --静态方法调用
            
--访问成员属性和方法:成员属性使用点号,成员方法使用冒号
CSClass = CS.CSClass; --在实际项目中,可以先用一个局部变量将C#那边的对象引用一下,今后只需要使用这个变量就好了,避免多次映射访问C#那边的对象增加消耗
cs = CSClass() --创建一个对象时不需要new关键字
cs.proName = 1024 --设置成员属性使用类对象+点号
print(cs.proName) --调用成员属性使用类对象+点号
cs:FunName() --
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值