Unity热更新技术整理

一、热更新学习介绍

1、什么是热更新

举例来说: 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新打包,然后让玩家重新下载(浪费流量和时间,体验不好)。 热更新可以在不重新下载客户端的情况下,更新游戏的内容。 热更新一般应用在手机网游上。

2、为什么C#脚本不可以直接更新

C#是一门编程语言,它运行之前需要进行编译,而这个编译的过程在移动平台无法完成,所以当我们游戏的逻辑更改,C#代码发生改变的时候,我们就需要重新在开发环境下编译,然后重新打包,然后让玩家去下载更新最新的版本。 这个体验差:包下载需要的时间长,而且很多资源没有更新,也需要重新下载,浪费流量。

3、热更新有哪些实现方式?

1、使用Lua脚本编写游戏的UI或者其他的逻辑 Lua是一个精悍小巧的脚本语言,可以跨平台运行解析,而且不需要编译的过程 2、使用C#Light

3、使用C#反射技术

二、关于AssetBundle

1、什么是AssetBundle

Unity提供了一个资源更新技术,就是通过AssetBundle,我们可以通过AssetBundle更新游戏UI,也可以把脚本或者其他代码当成资源打包成AssetBundle然后更新到客户端。 在所有的热更新技术中都需要AssetBundle。

 

三、如何利用Lua进行热更新

1、Unity提供了一个资源更新技术,就是通过AssetBundle,我们可以通过AssetBundle更新游戏UI,也可以把脚本或者其他代码当成资源打包成AssetBundle然后更新到客户端。 在所有的热更新技术中都需要AssetBundle

2、在移动端可以编写Lua的解析器,通过这个解析器,可以运行最新的Lua脚本,然后我们把控制游戏逻辑的代码都写成Lua脚本。

四、如何利用Lua进行热更新

1、Lua的解析技术有哪些?

1,uLua 骏擎【CP】 ulua.org

2,Nlua unity支持Riley G nlua.org

3,UniLua 阿楠同学

4,sLua

五、如何学习热更新技术

1,学习Lua编程

2,学习通过LuaInterface和luanet进行Lua和C#的交互通信

3,学习使用AssetBundle进行资源更新

4,学习uLua SimpleFramework 利用us创建自己的热更新游戏

时间: 2024-10-11 07:30:16

Unity热更新技术整理的相关文章

unity 热更新思路和实现

声明:本文介绍的热更新方案是我在网上搜索到的,然后自己修改了一下,相当于是借鉴了别人的思路,加工成了自己的,在此感谢无私分享经验的朋友们. 想要使用热更新技术,需要规划设计好资源比较策略,资源版本,确保增加新资源后可以下载到本地,有资源更新的时候可以替换掉本地旧资源.我在前面写了一篇"unity 打包AssetBundle"的文章,里面生成了一个资源版本文件,不多解释了,上图.至于怎么生成这个文件的,可以看一下我前面写的文章. 废话不多说. 先介绍热更新步骤,后上代码 步骤一.在Res

Unity热更新视频教程

Unity客户端架构设计与网络游戏视频教程下载 密码:f087    联系QQ:1026270010 目前利用Unity开发移动端游戏越来越多,不论是游戏公司还是独立开发者都需要在移动互联网时代发挥各自的技术优势,把自己的产品做到最好占领市场.本课程介绍的是基于Unity客户端框架设计以及关键技术3DAvatar换装和热更新技术实现以及Protobuf-net序列化和反序列化的运用,只有掌握了Unity开发的关键技术才能将其运用在游戏开发中,对于快速的开发游戏占领市场至关重要.本课程以此项目的开

unity 热更新 c# 实战经验分享(二) - 动态Protobuff协议,再也不用担心为了换条协议换包了 ~~!

先提前说明一下,如果哪位小伙伴 觉得生疏的话,可以看这篇博客的前面两个博客,里面讲述了 高大上 JSB,unity 热更新方案,用强大的宇宙第一编辑器vs 来开发 unity 热观更新脚本,更新c# 不在是梦 这次的demo 工程我已经长传了,地址 在这里http://pan.baidu.com/s/1qWQlXUW:下载后(放在D盘 放在D盘 放在D盘!!!!)里面的unity 工程直接打开然后运行main 场景 .就会出现下图,这篇博客唯一 的意义就在于这个demo,实战就是实战不跟你讲废话

iOS 热更新技术探索

最近在找工作,所以有时间研究一些BAT用到的一些框架和技术,今天要写的是热更新. 1.什么是热更新. 受限于iOS平台需要先审核在上线,一旦线上发现bug,想要修复还需要等到下次版本提交,这无形中会带给我们一些困扰,尤其是一些BAT量APP,所以热更新技术应运而生. 2.热更新解决方案. 我目前知道的有两种 第一种:微信使用的JSPatch JSPatch看名字就知道它是通过JS来实现的,大致原理就是通过下发JS脚本,通过消息转发调一些OC原生的方法,这个框架主要是用到一些JS高阶和运行时结合消

我使用的 unity 热更新方案 JSB(求小编 推荐一下)

今天周五 ,明天没有什么事情,可以安心写一些博客. 今天聊 两个话题 一 , unity热更新的窘境 二 ,我所使用的unity 热更新方案JSB ======================================热更新的窘境============================================= (1)其实unity 热更新到瓶颈是 ios 的 系统本身 ,禁止你 jit .说白了,内存中代码,系统本身不让你执行. 安卓 系统,桌面 系统,本身都支持 动态直接替换d

Unity热更新专题(六)uLua简介

Unity热更新专题(六)uLua简介 Unity热更新的解决方案中,uLua无疑是比较好的一种. 所以我们先来介绍一下uLua. 之前文章提到的Lua以及LuaInterface的学习,都是为了学习uLua来做基础的. 关于uLua的学习,我们可以参考官网,以及官方bbs来学习.上面有详细的视频文字教程. 官网:http://www.ulua.org/index.html 官方bbs:http://bbs.ulua.org/ 学习uLua有以上资料就够了. ==================

Unity热更新代码

对资源的更新比较简单,把资源打包成AB文件,然后放到资源服务器上,客户端程序启动时下载AB文件,程序加载AB文件就可以了,但对与C#程序来说如何进行更新呢,可以将C#打包到Dll里,然后将Dll放到资源服务器上,客户端下载DLL 通过如下代码加载Dll WWW www = new WWW (URL);yield return www; System.Reflection.Assembly.Load (www.bytes) 需要注意的是以上代码只在Android,Windows平台可以运行,不能在

C#最良心脚本语言C#Light/Evil,Xamarin\WP8\Unity热更新最良心方案,再次进化.

C#Light的定位是嵌入式脚本语言,一段C#Light脚本是一个函数 C#Evil定位为书写项目的脚本语言,多脚本文件合作,可以完全用脚本承载项目. C#Light/Evil 使用完全C#一致性语法 目前 C#Light已经是正式版,且经商业项目检验 C#Evil是Alpha版,欢迎试用反馈. C#Evil在C#Light的基础上 从底层支持了面向对象,请注意下面是脚本代码 不同于C#Light没有函数和类的设计,(C#Light只是用C#LightFramework来模拟整个cs文件的识别,

unity 热更新 c# 实战经验分享(一)

demo 工程地址 :http://pan.baidu.com/s/1qWBYxqc 我们接上篇 内容继续讲 http://www.cnblogs.com/zyc-it/p/4820810.html (1)工程分离 什么叫工程分离呢,就是要把你的游戏包(后面简称 #主工程#),和你的热更新工程(后面简称 #热更新工程#) 分离开.首先我先说一下 ,我为什么要这么做: 原因:从github 上更新下来的 jsb的工程,把所有的热更新代码写在了unity 里面了,然后在 热更新工程里面 去引用这些c