zoukankan      html  css  js  c++  java
  • Unity热更新相关概念

    热更新实现方式

    1. 使用Lua脚本编写游戏逻辑(Lua调用C#的方式),Lua解析器(也叫Lua虚拟机)在运行时解析Lua脚本,无须编译
    2. C#反射技术
    3. C#Light(什么鬼?) 

    如何学习热更新

    1. 学习Lua编程
     
       关于uLua的学习,我们可以参考官网,以及官方bbs来学习。上面有详细的视频文字教程
     官网:http://www.ulua.org/index.html
     官方bbs:http://bbs.ulua.org/
     
    2. 使用LuaInterface、Luanet进行Lua和C#交互
    3. 学习使用AssetBundle进行资源更新
    4. 学习Lua热更新框架(SimpleFramework等)

    热更新流程

    步骤1. 将StreamingAsset目录下的文件,全部复制到目标平台(ios/Android)的数据目录中(第一次运行游戏时)
    步骤2. 启动游戏前刷新所有文件夹,客户端文件(csv文件)与服务上的文件(file.txt)对比MD5,记录不同的文件,下载对应的文件替换,启动场景
    步骤3. 从数据目录加载AB(使用协程不使用线程)
    步骤5. 加载(和下载)AB的思路:
        (1)建立一个队列,队列中有加载AB的请求时,去加载,加载完成后移出队列,加载下一个直到完成
        (2)Unity5.0之后的AB资源是分开的,加载时难以判断依赖关系,而且AB资源在内存中只能有一个,所以使用单线程加载
    步骤6. 实例化后卸载内存中的AB

    uLuaFramework框架结构图

    注意的点

    (1)打包时根据每个文件起对应的AB名字,记录下MD5值和大小,保存为CSV文件(微软的东西确实好),好处是便于看也便于改
    (2)由于StreamingAsset目录是只读的,不能将服务端下载的文件放到里面,创建数据目录
    (3)开发用Resource加载,发布用LoadAB加载
    (4)不同平台下数据目录地址不同:
    Android、IOS:Application.persistentDataPath + "LuaFramework"
    Mac OS、Windows:c:/LuaFramework/
    Editor:Application.dataPath + "/StreamingAsset/"
  • 相关阅读:
    随笔--摘录
    在windows+Linux环境下搭建Hadoop集群
    大数据 hadoop 环境搭建
    react-native 学习 ----- React Navigation
    android开发中关于继承activity类中方法的调用
    linux下 bin和sbin的区别
    inux中bin与sbin目录的作用及区别介绍
    hadoop 解除 "Name node is in safe mode"
    hadoop常用命令
    菜鸟使用MySQL存储过程and临时表,供新手参考,请高手斧正
  • 原文地址:https://www.cnblogs.com/fuyunzzy/p/6527120.html
Copyright © 2011-2022 走看看