下载XLua:   https://github.com/tencent/xlua项目中使用XLua只需将Plugins和XLua两个文件夹拷贝到U3D中即可XLua只是核心,用于实现Lua和C#交互,但是并没有提供便捷的"框架",我们在项目中使用XLua的话,需要自己实现框架部分,这样才能实现"从服务器端下载AB和Lua资源,完成客户端的热更新"C#调用Lua   usin
转载 2月前
26阅读
初学ULua与XLua,在这里简单介绍一下各自特点与使用步骤,若有不当之处,欢迎指正。一:介绍 ULua与XLua都是用于Unity项目的热更新。 ULua的集成开发环境为SimpleFramework,分为NGUI版和UGUI版。实际上,ULua是对Lua的一次“包装”,而SimpleFramework是对ULua的又一次“包装”。由此可知,其关系为SimpleFramework>UL
前言xLua是Unity3D下Lua编程解决方案。全平台支持用Lua修复C#代码bug。XLua顶替Lua的优势  xLua热补丁技术支持在运行时把一个C#实现(函数,操作符,属性,事件,或者整个类)替换成Lua实现,意味着你可以:1、平时的逻辑使用C#脚本即可。2、运行也是C#,性能秒杀Lua。3、有bug的地方下发个Lua脚本fix了,下次整体更新时可以把Lua的实现换回正确的C#实现,更新时
针对Unity2018、2019版,请注意我此博客发布时间,目前尤其是搭建2019版本时会有较大的问题,以后不知道会不会修复。先简单说一下 tolua 和 luaframework。 前者的前身是C#tolua,由于unity只支持C#,IOS端热更新不了。所以作者大大写了个tolua工具使我们可以在Unity中使用lua,能够热更新。后者是基于tolua的UGUI框架,方便我们写UI。这两个东西
谈到目前的代码热更方案:没什么特别的要求toLua(效率比sLua高)打算以传统方式更新,热更仅仅用于紧急更新 / 希望战斗等性能敏感部分也能更新xLua(性能在Lua系列中一般,但额外支持HotFix,可以更多使用C#代码)基本上普通的项目也就只能用这两,也就是只有Lua一条路可走。然而,由于Lua自身缺少编译期间语法检查以及缺乏必要的语言特性,在熟练的开发者手里开发效率和健壮性其实是不如其他强
现在一些热更的方案有LuaJit、uLua、sLua、xLua、L#(C# Light)等1、LuaJit和其他Lua解释器区别过大,针对大多数unity的程序员来讲,并不是特别适合。2、uLua:Lua是当前速度最快的Lua,但它所存在的缺陷就是uLua的分支版本多,造成了不统一的现象。 ulua最早是一个叫LuaInterface开源库的Unity移植,在2015年初换成cs2lua,又在2
转载 4月前
192阅读
本文只讨论lua #取表长度。官方解释:The Length Operator#. The length of a string is its number of bytes (that is, the usual meaning of string length when each character is one byte).__len metamethod (see §2
本篇主要讲解下c如何调用Lua的,即c作为宿主语言,Lua为附加语言。c和Lua之间是通过Lua堆栈交互的,基本流程是:把元素入栈——从栈中弹出元素——处理——把结果入栈。关于Lua堆栈介绍以及Lua如何调用c参考其他两篇。1. 加载运行Lua脚本通过luaL_newstate()创建一个状态机L,c与Lua之间交互的api的第一个参数几乎都是L,是因为可以创建多个状态机,调用api需指定在哪个状
C#调用Lua 一.前提 这里使用的是XLua框架,需要提前配置xlua,设置加载器路径; 可以参考之前的Blog:《xlua入门基础》; 二.C#调用Lua全局变量 lua中所有的全局变量都会存在一个表中,对应xLua中的Global,通过lua解释器返回出来; 通过Global的方法Get<类型 ...
转载 2021-10-11 14:57:00
602阅读
2评论
访问LuaEnv.Global就可以了,上面有个模版Get方法,可指定返回的类型。luaenv.Global.G
原创 2022-11-02 13:49:59
64阅读
xLuaLua调用C# 1.前提 这里使用的是XLua框架,需要提前配置xlua,设置加载器路径; 可以参考之前的Blog:《xlua入门基础》; //调用端,所有的lua代码都写在LuaCallCSharp.lua文件中 public class LuaCallCSharp1 : MonoBeh ...
转载 2021-10-12 00:09:00
578阅读
2评论
主要对比React Native和5+SDK(就是dcloud的SDK)两个:开发语言:三个都是用其他语言来统一开发IOS、android应用的框架技术,其中,React Native是使用纯JS,5+SDK是使用JS和html,LuaView则是使用lua语言,三者都是使用css或者类css布局,这点都很像,三者都可以使用原生(IOS、android)语言做一部分功能,比如有特殊性能要求的地方,
01.访问一个全局的function仍然是用Get方法,不同的是类型映射。1、映射到delegate
原创 2022-11-02 13:49:46
143阅读
前言对于Lua的基础总结总算告一段落了,从这篇博文开始,我们才真正的进入Lua的世界,一个无聊而又有趣的世界。来吧。Lua语言是一种嵌入式语言,它本身的威力有限;当Lua遇见了C,那它就展示了它的强大威力。C和Lua是可以相互调用的。第一种情况是,C语言拥有控制权,Lua是一个库,这种形式中的C代码称为“应用程序代码”;第二种情况是,Lua拥有控制权,C语言是一个库,这个时候C代码就是“库代码”。
 1️⃣每次修改c# 代码 xlua 无需生成代码, tolua 需要生成代码?????原理tolua:c# 代码静态注册到lua代码中 xlua:在编辑器模式下使用TypeBuilder,IlEmit,动态生成接口的C#代码,避免了每次新注册或者改变导入类时,都需要生成代码并加载。最后在实际发布中需要生成代码?注意点但是需要加XLua.LuaCallCSharp or XLua.Ref
三:访问C#中的成员属性和成员方法成员属性和成员方法都是指向具体的对象,不像静态属性和静态方法一样通过CS获取到就可以——访问C#中的成员属性例如Object类中的name属性就是一个成员属性在Lua中编写调用C#的代码:在CS中编写加载Lua的代码,运行后层级面板中Main Camera的名称修改为newCamera——访问C#中的成员方法例如gameObject的...
原创 2021-07-14 13:59:53
458阅读
Lua访问C#都需要用CS去访问到类中的方法,字段,属性如果在Lua文件中使用print则在Untiy输出结果带有LUA:,如果使用CS去访问到Untiy中的输出方法,则不带有Lua:,因为前者是通过Lua中的输出语句进行的输出,后者是通过Unity中的输出语句进行的输出print(CS.UnityEngine.Time.timeScale) --LUA...
原创 2022-01-25 14:42:20
10000+阅读
前言:Lua作为解析执行的脚本语言, 往往是易变逻辑编写的首选语言, 尤其是在游戏领域. C/C++和Lua的结合, 往往了标配. 比如Redis, Nginx其对Lua的支持, 也是杠杠的. 当然Lua也可以作为规则引擎中的规则编写语言. 本文对Java调用Lua(Luaj)的实现机制, 做下简单的介绍.Luaj简介:Luaj是Java调用Lua的一种实现方式, 其是构建一个虚拟机解析执行Lua
序言要结束cocos的开发转unity了(本来标题是要写这个的,写着写着就写多了) unity对我们来说是个新的挑战cocos的方案连更新的逻辑都能更新,全部逻辑用lua编写unity的lua方案似乎效率很一般,好多人都是提议通过c#写代码,然后lua只是配置目前unity的lua社区都还比较小,使用人数不多,遇到问题很多都要自己解决分析目前就看了uLua和xLuaulua ulua是比较早而
转载 3月前
18阅读
Lua访问C#都需要用CS去访问到类中的方法,字段,属性如果在Lua文件中使用print则在Untiy输出结果带有LUA:,如果使用CS去访问到Untiy中的输出方法,则不带有Lua:,因为前者是通过Lua中的输出语句进行的输出,后者是通过Unity中的输出语句进行的输出print(CS.UnityEngine.Time.timeScale) --LUA...
原创 2021-07-14 13:59:54
707阅读
  • 1
  • 2
  • 3
  • 4
  • 5