1、如果 Lua 不只是独立的程序,为什么到目前为止贯穿整本书我们都是在使用 Lua 独立程序呢? 这个问题的答案在于Lua解释器(可执行的lua)。 Lua 解释器是一个使用 Lua 标准库实现的独立的解释器 。解释器负责程序使用者的接口:从使用者那里获取文件或者字符串,并传给 Lua 标准库, Lua 标准库负责最终的代码运行。就因为这个特性,所以Lua
转载 2024-05-26 16:20:15
96阅读
一、Lua介绍Lua 是一个嵌入式的语言,Lua 解释器是一个使用 Lua 标准库实现的独立的解释器,她是一个很小的应用(总共不超过 500 行的代码)。解释器负责程序使用者的接口:从使用者那里获取文件或者字符串,并传给 Lua 标准库, Lua 标准库负责最终的代码运行。1.Lua 作为扩展性语言和可扩展的语言 Lua 可以作为程序库用来扩展应用的功能,Lua 程序中可以注册有其他语言实现的函
转载 2024-03-20 13:33:23
207阅读
下载XLua:   https://github.com/tencent/xlua项目中使用XLua只需将PluginsXLua两个文件夹拷贝到U3D中即可XLua只是核心,用于实现LuaC#交互,但是并没有提供便捷的"框架",我们在项目中使用XLua的话,需要自己实现框架部分,这样才能实现"从服务器端下载ABLua资源,完成客户端的热更新"C#调用Lua   usin
转载 2024-06-14 23:04:17
106阅读
谈到目前的代码热更方案:没什么特别的要求toLua(效率比sLua高)打算以传统方式更新,热更仅仅用于紧急更新 / 希望战斗等性能敏感部分也能更新xLua(性能在Lua系列中一般,但额外支持HotFix,可以更多使用C#代码)基本上普通的项目也就只能用这两,也就是只有Lua一条路可走。然而,由于Lua自身缺少编译期间语法检查以及缺乏必要的语言特性,在熟练的开发者手里开发效率健壮性其实是不如其他强
初学ULua与XLua,在这里简单介绍一下各自特点与使用步骤,若有不当之处,欢迎指正。一:介绍 ULua与XLua都是用于Unity项目的热更新。 ULua的集成开发环境为SimpleFramework,分为NGUI版UGUI版。实际上,ULua是对Lua的一次“包装”,而SimpleFramework是对ULua的又一次“包装”。由此可知,其关系为SimpleFramework>UL
转载 2024-03-14 20:42:59
749阅读
针对Unity2018、2019版,请注意我此博客发布时间,目前尤其是搭建2019版本时会有较大的问题,以后不知道会不会修复。先简单说一下 tolua luaframework。 前者的前身是C#tolua,由于unity只支持C#,IOS端热更新不了。所以作者大大写了个tolua工具使我们可以在Unity中使用lua,能够热更新。后者是基于tolua的UGUI框架,方便我们写UI。这两个东西
转载 2024-06-28 13:44:01
114阅读
前言对于Lua的基础总结总算告一段落了,从这篇博文开始,我们才真正的进入Lua的世界,一个无聊而又有趣的世界。来吧。Lua语言是一种嵌入式语言,它本身的威力有限;当Lua遇见了C,那它就展示了它的强大威力。CLua是可以相互调用的。第一种情况是,C语言拥有控制权,Lua是一个库,这种形式中的C代码称为“应用程序代码”;第二种情况是,Lua拥有控制权,C语言是一个库,这个时候C代码就是“库代码”。
转载 2024-05-07 13:46:18
29阅读
 1️⃣每次修改c# 代码 xlua 无需生成代码, tolua 需要生成代码?????原理tolua:c# 代码静态注册到lua代码中 xlua:在编辑器模式下使用TypeBuilder,IlEmit,动态生成接口的C#代码,避免了每次新注册或者改变导入类时,都需要生成代码并加载。最后在实际发布中需要生成代码?注意点但是需要加XLua.LuaCallCSharp or XLua.Ref
转载 2024-02-26 11:46:27
70阅读
现在一些热更的方案有LuaJit、uLua、sLua、xLua、L#(C# Light)等1、LuaJit其他Lua解释器区别过大,针对大多数unity的程序员来讲,并不是特别适合。2、uLua:Lua是当前速度最快的Lua,但它所存在的缺陷就是uLua的分支版本多,造成了不统一的现象。 ulua最早是一个叫LuaInterface开源库的Unity移植,在2015年初换成cs2lua,又在2
转载 2024-04-29 20:22:20
411阅读
本篇主要讲解下c如何调用Lua的,即c作为宿主语言,Lua为附加语言。cLua之间是通过Lua堆栈交互的,基本流程是:把元素入栈——从栈中弹出元素——处理——把结果入栈。关于Lua堆栈介绍以及Lua如何调用c参考其他两篇。1. 加载运行Lua脚本通过luaL_newstate()创建一个状态机L,c与Lua之间交互的api的第一个参数几乎都是L,是因为可以创建多个状态机,调用api需指定在哪个状
转载 2024-03-14 08:13:29
81阅读
moZine上的精华贴 什么是XUL? 为什么使用XUL? XML用户界面语言(XUL)是一种用于创建具有丰富动态特性用户界面的标记语言。它是Mozilla浏览器及其相关软件的一部分,同时也是Gecko的 一部分。XUL支持各种版本的Windows、Macintosh、Linux及其它版本的Unix。有了XUL其它Gecko组件,你不需要别的专门 工具就能够编写出优秀的应
转载 2024-06-29 11:05:10
126阅读
LUA是一种体积小,速度快的脚本语言。脚本语言虽然性能上C++这样的Naitive语言相比差一点,但是开发速度快,可以方便的更新代码等,近年来受到了越来越多开发者的重视。在SOUI框架中,我把脚本模块参考CEGUI抽象出一个独立的脚本接口,方便实现各种脚本语言的对接。下面简单介绍一下在SOUI中实现的LUA脚本模块的实现。在客户端程序中使用脚本语言一个基本的需求就是C++代码脚本代码的相互调用
转载 2024-05-28 12:09:41
43阅读
HOTFIX_ENABLE 例1 xlua.hotfix(CS.CS_test,'Fun_pamaras',function(self,num)   print("lua带参数的方法",num)   end )例2 local util = require 'util'; util.hotfix_ex(CS.CS_test,'Fun1',function(self)   self.Fun1(se
转载 2024-08-28 12:12:45
25阅读
  Lua可作为扩展性语言(Lua可以作为程序库用来扩展应用的功能),同时也是个可扩展的语言(Lua程序中可以注册由其他语言实现的函数)。   LuaC通信的主要方法是通过一个虚拟栈来完成,lua提供了C API对栈进行操作。几乎所有的API调用都是对栈上的值进行操作,所有C与Lua之间的数据交换也都通过这个栈来完成。另外,你也可以使用栈来保存临时变量。   C API是一个C代码与Lua
      luac有两种关系:      一种是在lua中调用C的函数,C称为库代码,一种是C中调用lua,C就称为应用程序代码,此时C中包含了lua的解释器   C代码部分       注意在C++中,通
转载 2024-03-16 13:07:25
31阅读
环境: cocos3.10   Lua5.1.4  Visual Studio 2013 简介Lua作为一种脚本语言(https://www.lua.org/),它提供了很多的 C API使得C/C++与Lua之间进行通信交互。在cocos2d-x中lua与C++的交互,主要借助于第三方工具tolua++来实现。该工具会将C++按照Lua支持的C API指定
转载 2024-06-13 20:42:05
244阅读
c apilua是一种嵌入式语言,可以链接到其他车型的库,lua库看拓展内容 使用了lua的程序可以注册其他语言的函数来向lua 添加功能c api 是一组能是c代码与lua 交换的函数, 包括 读写lua全局变量, 调用lua函数 ,运行lua 代码 注册 c函数给lua调用lua 与 c 通信的主要方法是一个无处不在的虚拟栈, 所有api都会操作这个栈上的值,所有交换都在c与lua的差异都在栈
转载 2024-05-29 13:17:35
156阅读
最近公司需要c++中嵌入lua,抽空学习了下lua语言是嵌入式语言,c/c++lua是可以相互交互的第一种情况:c/c++语言具有控制权,Lua是一个库,这种形式的c/c++代码称为应用程序代码第二种情况:lua具有控制权,c语言是一个库,这个时候c代码就是库代码应用程序代码库代码都使用同样的API来与Lua通信,这些API被称为CAPI对几个头文件进行解释:lua.h定义了Lua提供的基础函
转载 2024-08-26 12:42:32
140阅读
一. xlua简介    xlua 是由腾讯维护的一个开源项目,除了常规的Lua绑定之外,还有一个比较有特色的功能就是代码热补丁。非常适合前期没有规划使用Lua进行 逻辑开发,后期又需要在iOS这种平台获得代码热更新能力的项目。     刚开始学习使用xlua,主要实现原理暂时还未进行深究,研究过后将会在之后的内容里补上。这里先祭上官方的一张图来简
零、参考文档作者的说明一、GC实现需要考虑的问题1、着色可以处理循环引用mark and sweep实现,通过着色的方法,一个优点就是可以避免循环引用,当AB两个对象可能互相指向对方时,着色可以避免无限递归。2、全量集可达集sweep的时候是清除没有被访问过的节点,相当于从全量集合中删除子集。所以就需要有一种方法,能够找到系统中所有的变量;加上一个遍历的起点(也就是根节点),从而mark所有可
  • 1
  • 2
  • 3
  • 4
  • 5