首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
tolua和xlua对比
2024-09-07
热更新解决方案--tolua学习笔记
一.tolua使用准备工作:从GitHub上下载tolua(说明:这篇笔记使用的Unity版本是2019.4.18f1c1,使用的tolua是2021年4月9日从GitHub上Clone的tolua工程文件,没有下载release版本,使用的ide为vscode) 1.在GitHub上搜索tolua,点击下图搜索结果中选中的项目进入: 2.进入后Clone项目或者下载右边的release发布出来的tolua,这里我选择的是Clone代码: 3.导入tolua,将下载的tolua工程中的相关文件复
深入理解xLua热更新原理
热更新简介 热更新是指在不需要重新编译打包游戏的情况下,在线更新游戏中的一些非核心代码和资源,比如活动运营和打补丁.热更新分为资源热更新和代码热更新两种,代码热更新实际上也是把代码当成资源的一种热更新,但通常所说的热更新一般是指代码热更新.资源热更新主要通过AssetBundle来实现,在Unity编辑器内为游戏中所用到的资源指定AB包的名称和后缀,然后进行打包并上传服务器,待游戏运行时动态加载服务器上的AB资源包.代码热更新主要包括Lua热更新.ILRuntime热更新和C#直接反射热更新等.
Unity3D游戏GC优化总结---protobuf-net无GC版本优化实践
protobuf-net优化效果图 protobuf-net是Unity3D游戏开发中被广泛使用的Google Protocol Buffer库的c#版本,之所以c#版本被广泛使用,是因为c++版本的源代码不支持Unity3D游戏在各个平台上的动态库构建.它是一个网络传输层协议,对应的lua版本有两个可用的库:一个是proto-gen-lua,由tolua作者开发,另外一个是protoc,由云风开发.protobuf-net在GC上有很大的问题,在一个高频率网络通讯的状态同步游戏中使用发现GC过
Unity热更方案汇总
http://www.manew.com/thread-114496-1-1.html 谈到目前的代码热更方案:没什么特别的要求 <ignore_js_op> toLua(效率比sLua高) 打算以传统方式更新,热更仅仅用于紧急更新 / 希望战斗等性能敏感部分也能更新 xLua(性能在Lua系列中一般,但额外支持HotFix,可以更多使用C#代码) 基本上普通的项目也就只能用这两,也就是只有Lua一条路可走. 然而,由于Lua自身缺少编译期间语法检查以及缺乏必要的
热更新-----为何使用lua进行热更
事实上我们在安卓端是可以使用c#jit的,但是我们在ios上的代码是AOT(预先编译,静态编译)的,不能用c# jit(实时编译,即时编译). ios不能用c#热更是因为启动了CPU的No eXecute bit,简单说就是ios不允许更改代码,更新代码必须重新提安装包进行审核,AppStore审核过的代码才能执行.而lua解释器(通常来说就是lua.c中的代码)是审核过的,这才是为何lua可以运行在ios上的根本原因. lua在unity中作为一个文本资源来使用,当我们通过tolua或者xlu
Unity3D热更新之LuaFramework篇[01]--从零开始
前言 因工作关系,需要对手头的项目进行热更新支持.了解后发现,Lua的几个变种:XLua.ToLua(原uLua)和Slua都可以做Unity热更,而ToLua更是提供了一个简易的热更框架--LuaFramework_UGUI,使得上手变得容易,因此选定LuaFramework_UGUI框架来实现项目的热更功能. 当然,容易是相对的,对一个小白来说要弄懂这一套流程和概念并不简单.网上相关资料不少,但大多是零散而雷同的,很难让一个此前对热更缺少认知的人快速上手.因此我将自己的爬坑经历整理成文,希望
unity游戏热更新总结
1.利用反射来做Dll更新 这种方式只支持windows以及安卓这种支持JIT的平台,对于IOS就不适用了,IOS这种Full-AOT的平台不支持生成新的代码,因此这种热更方式很少用到. 2.利用lua来做更新 目前这种更新方式是主流,适用于所有平台,lua作为脚本语言,无须编译就能在各个平台运行,常用的lua热更框架有ulua.tolua.xlua.slua.cs2lua等,其中ulua作为开山鼻祖,早已停止更新,逐渐退出主流,最常用的应该还是xlua以及tolua,xlua不仅支持纯lu
热更新 && 增量更新
Unity中SLua.Tolua.XLua和ILRuntime效率评测 http://blog.csdn.net/u011467512/article/details/72716376 如何阅读luajit的代码——用vs调试篇 ZeroBrane Studio远程调试Lua步骤 http://www.jianshu.com/p/271db393cf58 http://www.cnblogs.com/zwywilliam/p/6023246.html 用好lua+unity,让性能飞起来——关
原生实现C#和Lua相互调用-Unity3D可用
引言 本篇简单介绍如何在C#中执行Lua脚本,传递数据到Lua中使用,以及Lua中调用C#导出的方法等.在Unity中开发测试,并打IL2CPP的Android包在模拟器上运行通过.Lua版本使用的是Lua5.1.5. 一.编译Lua动态链接库 1. 编译Windows下使用的DLL文件 使用VS2015创建一个空的动态链接库项目,删除里面默认创建的几个文件(如果想自定义拓展可用保留),然后把Lua的源码拷贝进来,添加到项目工程中,编译宏需要配置LUA_BUILD_AS_DLL和_C
Unity3D游戏xlua轻量级热修复框架
这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察了xlua和tolua,最终选择了xlua,原因如下: 1)项目已经到了后期,线上版本迭代了好几次,所以引入Lua的目的不是为了开发新版本模块,而是修复旧版本Bug. 2)修复Bug针对的是iOS平台,总所周知,安卓平台是可以通过更新DLL去修复的,而修复Bug直接改写C#代码肯定要比整个函数翻译为Lua来得简单,实际上最后由于xlua注入和我们项目的安卓代码加密流程冲突,我们对安卓保留了
Unity3D游戏轻量级xlua热修复框架
Unity3D游戏轻量级xlua热修复框架 一 这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察xlua和tolua,最终选择了xlua,很大部分原因是因为项目已经到了后期,线上版本迭代了好几次,所以引入Lua的目的不是为了开发新版本模块.xlua在我们的这种情况下很是适用,如xlua作者所说,用C#开发,用lua热更,xlua这套框架为我们提供了诸多便利,至少我可以说,在面临同样的情况下,你用tolua去做同样的事情是很费心的.但
ulua、tolua原理解析
在聊ulua.tolua之前,我们先来看看Unity热更新相关知识. 什么是热更新 举例来说: 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新打包,然后让玩家重新下载(浪费流量和时间,体验不好). 热更新可以在不重新下载客户端的情况下,更新游戏的内容. 热更新一般应用在手机网游上. 为什么要用lua做热更新 其实C#本身的反射机制可以实现热更新,但是在ios平台上: System.Reflec
学习tolua#·20多个例子
初始项目搭建 clone官方库 新建unity工程 依次把官方库里的Assets和Unity5.x/Assets拷贝到项目Assets里 打开unity工程, 开始逐个学习例子,例子目录: 1. hello world 新建luaState 执行字符串命令print ('hello tolua#') unity的console里找到输出结果(找的不是很容易呀) 2. run scripts from file 添加源码建search path 读取执行lua源文件 脚本内容 添加脚本搜索路径到l
Xlua 不同平台链接库编译
xlua 下载包中提供lua5.3的库文件,如果需要luajit或者自己添加删除的就需要自己进行编译. Lua53版本没那么多事,主要是LuaJIt版本折腾的比较久. 工具 Xlua使用CMake进行编译,不管是哪个平台都需要提前安装 Windows 下 Visual Studio 2015 , MAC下XCODE Windows(.dll) luajit 版本 默认使用的是 Visual Studio 2015 注意VS140COMNTOOLS环境变量以及该路径是否存在vcvars64.bat
【cocos2d-x + Lua(1) 绑定Lua并使用tolua++】
为什么要使用Lua进行游戏开发?转载请注明出处http://www.cnblogs.com/zisou/p/cocos2dx-lua1.html 上面一个问题我觉得在我们使用Lua之前需要深入思考的,Lua有何优点?缺点又是什么?先找准自己的项目定位 在什么时候使用是很必要的: 经过自己一番摸索之后有如下结论: 优点: 1,嵌入式脚本开发可以跳过平台市场进行独立的游戏资源更新: 2,在使用Lua开发能降低在使用C++中得指针引用报错,nil类型问题: 3,可以使用Lua表结构来完成面向对象: 还
现学现卖】IntelliJ+EmmyLua 开发调试Unity中Xlua
http://blog.csdn.net/u010019717/article/details/77510066?ref=myread http://blog.csdn.NET/u010019717 推荐一下这个国人弄的基于IntelliJ IDE 弄得插件 EmmyLua . 他的QQ群: 29850775 github: https://github.com/tangzx/IntelliJ-EmmyLua oschina: http://git.oschina.net/tangzx/Int
cocos2dx之tolua++全面分析(二):类注册
tolua被作为库使用时,首先会做大量内部初始化工作: 一.tolua_open是入口点,它创建很多用于管理的内部变量,以下用_G指代全局表,_R指定registry table: 1._R.TOLUA_VALUE_ROOT={}, 这个表是cocos2dx自己加的,它把所有传入lua的cppobj/userdata都塞到这个表里,而且这还不是一个弱表,也就意味着cocos2dx创建的cpp obj,永远都不会被gc!只有在c++层面被delete时,才会去这个表里删除自己.因此,每一个coco
xLua下使用lua-protobuf
本文发表于程序员刘宇的博客,转载请注明来源:https://www.cnblogs.com/xiaohutu/p/12168781.html protobuf作为一种通用套接字格式,各种插件里,最本质.最关键的就是基于二进制的两个操作: 1. 根据proto文件打包出二进制数据. 2. 根据二进制数据反串化出需要的数据格式. 所以其实在不同平台下需要的就是各自的解析库.作为跨平台的套接字,同版本二进制打包出来的格式必须完全一样,1里的proto文件一般也是要在项目开发中多平台通用,2里反串化的格
unity 热更方案对比
现在一般使用的方案有:tulua&ulua.xlua.ILRuntime 对比: tulua&ulua 方案成熟,稳定第三方库支持 xlua 之前是为了热更修复线上bug的,腾讯发起的,现在也有部分从一开始就用xlua开发 ILRuntime 最近几年出的,一种全部C#语言开发,掌趣公司发起,现在去掉反射使用桥接类性能有很大提升.大家关注度比较高 lua 优点:稳定.使用的项目多.可行性多 缺点:静态语言,重构麻烦,查错难,学习成本高,维护成本高 ILruntime 优点:调用C#快,学习
Ignite性能测试以及对redis的对比
测试方法 为了对Ignite做一个基本了解,做了一个性能测试,测试方法也比较简单主要是针对client模式,因为这种方法和使用redis的方式特别像.测试方法很简单主要是下面几点: 不作参数优化,默认配置进行测试 在一台linux服务器上部署Ignite服务端,然后自己的笔记本作客户端 按1,10,20,50,100,200线程进行测试 测试环境说明 服务器: [09:36:56] ver. 1.7.0#20160801-sha1:383273e3 [09:36:56] OS: Linux 2.
热门专题
bootstrap-year-calendar全年日历插件
SQL 函数 TIMESTAMPDIFF(second
centos8.4.2105 安装单机 k8s
sql 查询到的数据进行拆分,
WIN10系统双网卡设置一个外网一个内网
appium弹窗处理
wpf 画扇形 博客园
前台获取后台400异常状态码
Navicat 数据同步 错误1172
怎么把本地文件上传到linux
plt设置坐标轴线宽
windows server2012 vps 复制乱码
SQL 错误3041
sql 相邻时间相减
django搭建个人博客
ios 自定义闪屏页
pixel1代 刷机
delphi 删除目录下的所有文件
dynamics crm 性能建议
C 模板 一个结构体一个基础类型