1.利用反射来做Dll更新
这种方式只支持windows以及安卓这种支持JIT的平台,对于IOS就不适用了,IOS这种Full-AOT的平台不支持生成新的代码,因此这种热更方式很少用到。
 
2.利用lua来做更新
目前这种更新方式是主流,适用于所有平台,lua作为脚本语言,无须编译就能在各个平台运行,常用的lua热更框架有ulua、tolua、xlua、slua、cs2lua等,其中ulua作为开山鼻祖,早已停止更新,逐渐退出主流,最常用的应该还是xlua以及tolua,xlua不仅支持纯lua热更,还支持HotFix,平时开发用C#,出bug了就用lua替换,这种方式收到了广大开发者的欢迎,而且xlua有腾讯来维护,不用担心以后版本升级的问题,tolua作为ulua的继承者,也被广泛应用。cs2lua则是开发时使用C#,开发完就将C#代码转换成lua,这样一套游戏就有了C#和Lua两个版本。
 
3.ILRuntime
ILRuntime是掌趣科技开源的unity热更框架, 这个框架打破了C#不能做ios平台热更的规则,在ios平台中是以ILRuntime + DLL 的方式解释执行,当然是在IL2CPP下。有了这个框架,开发者只需使用C#这一种语言即可,而不用在C#和lua之间切换,但这个框架也是有很多坑的,在一些方面性能是不如lua的,Git上的贡献者也很少,暂时没有经过大量项目的考验,用的人还是比较少的。
 
4.C#Light
C#Light是框架作者开发的一种小巧的脚本语言,能在各个平台实现热更,但该框架早已停止维护,这种热更方式也已经淡出视野。
 
5.JSBinding+SharpKit
JSBinding + SharpKit 这种热更技术,他做了两件事情:
  1. JSBinding将C#导出到 JavaScript 中,让你可以用 JavaScript 写代码,就好像 lua 一样
  2. SharpKit将C#代码翻译成 JavaScript 代码。
因此,他可以让你使用C#编译代码,之后一键转换成 JavaScript 代码并正常运行。使用这个方案,可以同时拥有 C# 版本和 JavaScript 版本的游戏。

unity游戏热更新总结的更多相关文章

  1. JSBinding+Bridge.NET:Unity游戏热更新方案

    老版本链接如下:http://www.cnblogs.com/answerwinner/p/4469021.html 新用户不要再使用老版本了. 新版本 JSBinding 将抛弃 SharpKit ...

  2. unity游戏热更新

    链接:https://pan.baidu.com/s/1ggWP0OF 第 1 章 : 热更新技术学习介绍 课时1:101-热更新技术学习介绍 11:55 什么是热更新? 举例来说 游戏上线后,玩家下 ...

  3. Unity代码热更新方案 JSBinding + SharpKit 首页

    目前Unity的代码更新方案有很多,主要以lua为主. JSBinding + SharpKit 是一种新的技术,他做了两件事情: JSBinding将C#导出到 JavaScript (引擎是 Mo ...

  4. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用FairyGUI (一)

    我们的热更新脚本在实际使用中,当然也要支持常用的第三方组件,例如这里介绍一个非常实用的第三方UI库:FairyGUI. 什么是FairyGUI 这里照搬FaiyGUI官网的介绍: 重新定义 UI 制作 ...

  5. Unity资源打包学习笔记(二)、如何实现高效的unity AssetBundle热更新

    转载请标明出处:http://www.cnblogs.com/zblade/ 0x01 目的 在实际的游戏开发中,对于游戏都需要进行打补丁的操作,毕竟,测试是有限的,而bug是无法预估的.那么在手游中 ...

  6. 出售一套Unity + Lua热更新框架代码

    出售一套Unity + Lua的客户端框架代码,功能有资源管理.网络通信.配置文件解析.热更新.文件读写.Lua加密揭秘.UI框架.打包工具.编辑器工具等,已经在多个实际项目(已上线)中使用.代码优雅 ...

  7. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新

    unity热更新是一个经久不衰的话题.除了最常见的lua之外,还有如JSBinding,C#等等.这里介绍一个使用ECMAScript4进行热更新的方案.它吸收了各家的优点,特色很鲜明. 项目地址: ...

  8. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- Demo分析

    如何创建工程 下载最新的Unity发布插件包. 打开Unity,新建一个项目 将插件包导入 在菜单中点击ASRuntime/Create ActionScript3 FlashDevelop HotF ...

  9. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 在脚本中使用MonoBehaviour

    继上次分析了热更新的Demo后,这次来介绍如何在热更新代码中使用MonoBehaviour. MonoBehaviour挂载到GameObject对象上的脚本的基类.平常Unity开发时,简单的做法就 ...

随机推荐

  1. ActiveMq 配置多队列

    一直在赶项目,好久没有写博文了,中间偶尔有些代码什么的,也都是放到github了,不过大多都是测试代码,毕竟有些成型的东西是给公司写的,鉴于职业道德,还是不好公开. 言归正传,这两天在接入第三方的收费 ...

  2. 关于微信支付回调url失败的原因

    首先需要在config配置好url,然后再微信支付里面配置url. 最重要的是url需要外网能在访问,不能有任何权限

  3. oracle12c不能进入到http://localhost:1158/em的解决办法

    oracle12c的em经过精简,比11g小 很多,登陆方式也发生了变化,原来的https://localhost:1158/em或者https://localhost:1158/em登陆总是会遇到问 ...

  4. vs2017使用rdlc

    写在前面:因为公司要求做个批量打印工具,以前用Delphi+FastReport开发的,现在因为公司就剩下一个Delphi开发工程师了,还外出,所以这是就落在我身上.因为这个打印工具不需要使用人员设计 ...

  5. docker 网络实践

    #docker 网络模式 环境 centos7. , Docker version -ce docker自带网络类型 bridge,host,none,container,overlay,macvla ...

  6. Core Data Tutorial for IOS: Getting Started

    http://www.raywenderlich.com/934/core-data-tutorial-for-ios-getting-started

  7. Sip协议

    会话初始协议.SIP是IETF标准进程的一部分,它是在诸如SMTP(简单邮件传送协议)和HTTP(超文本传送协议)基础之上建立起来的(请求应答的通讯模式).微信采用了自主研发的SYNC协议,他通过“握 ...

  8. 直接插入排序实现(Java)

    直接插入排序介绍 直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的.记录数增1的有序表.     怎么理解呢?就是将n个待排序的元素看成一个有序表和一个无序表,开始时有序 ...

  9. POJ 1051

    #include <iostream> #include <algorithm> #include <string> #define MAXN 27 using n ...

  10. 解决input和button错位(不齐)问题

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...