Skip to content

基于Unity平台,tolua架构下的热更项目框架

Notifications You must be signed in to change notification settings

GrayGuardian/HotUpdate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HotUpdate

基于Unity平台,tolua架构下的热更项目框架

项目说明

功能

  1. 纯Lua开发业务逻辑,只要C#底层不改动,直接导出资源文件并放置至下载服务器即可实现热更新

  2. 可以在线多线程下载、断点续传,大文件资源传输效率、容错率更高

  3. 具备广播、计时器、对象池等常用游戏管理类

  4. 资源加载架构 自动管理资源加载源

  5. ui管理架构 自动管理层级、委托事件、AB包加载卸载等功能

  6. C#编写的支持异步的http、socket网络模块

  7. 无第三方插件,底层均为开源手写

工作流

lua调用工作流

  • 无需依赖某个场景,运行自动通过Unity的特性RuntimeInitializeOnLoadMethod自动调用入口函数Main.cs中的main函数,添加tolua客户端组件LuaClient.cs,再通过LuaClient.cs加载lua入口文件main.lua,开始纯lua调用
  • 场景转换将触发main.lua内的OnLevelWasLoaded函数,通过broadcast广播的形式,在scene_mgr.lua监听,并创建scene_[name].lua实例
  • 场景实例中,通过uiMgr:load([name])的方式再次创建ui_[name].lua实例,大部分的游戏逻辑,均写在UI实例中,个别需要绑定在具体物体上的逻辑,可以创建comp_[name].lua实例。

热更工作流

详见个人博客文章Unity资源热更新知识梳理及工作流介绍

入门指南

这些说明将为您提供项目的副本,并在您的本地机器上运行,用于开发和测试。有关如何在活动系统上部署项目的说明,请参阅部署。

环境依赖

  • Unity 2020.3.4f1c1

安装

  1. 通过github下载项目
    https://github.com/GrayGuardian/ggb-game-client.git
  2. 修改项目配置
  • 修改Assets\Resources\AssetBundles\lua\const\GAME_CONST.luaApi_UrlDownload_Url字段值为下载服务器配置
  1. 点击菜单栏Tool - AssetBundle - Build - Build,导出加密AB包及资源文件至Build文件夹
  2. Build文件夹所有的资源文件,放置在下载服务器上

运行测试

  • 无需选择场景,直接点击Play启动测试

此处仅展示如何快速启动项目测试,具体配置方式请看下方项目导出

项目导出APK

  1. 点击 Lua - Clear warp files 清空文件,等待按提示重新生成

  2. 修改 Assets/Editor/AssetBundles/AssetBundleToolEditor.cs 中的配置

    • 修改资源版本信息 >>> VModel vModel = new VModel()
    • 修改与包体绑定的资源文件 >>> string[] defaultFiles = new string[] { }
  3. 点击菜单栏Tool - AssetBundle - Build - Build,导出加密AB包及资源文件至Build文件夹

  4. Build文件夹所有的资源文件,放置在下载服务器上

  5. Unity直接打包APK项目

打包完毕后的apk 若C#底层代码未修改,则无需重新打包,重复2-4步导出资源文件至下载服务器,重启APP即可进行在线热更新。

内置

About

基于Unity平台,tolua架构下的热更项目框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published