KSFramework:集成U3D热重载框架 - README
KSFramework
KEngine + SLua+ Framework = KSFramework
KSFramework是一个整合KEngine、SLua的Unity 5开发框架,并为程序、美术、策划、运营提供辅助工具集。
热重载是KSFramework的开发重点——在不重启游戏的前提下,重载代码、配置表可立刻看到修改效果,最大限度的提升开发、调试的速度,方便运营阶段热更新。
安装
从产品包安装
你可以从KSFramework Release页面下载最新版本的产品包。
解压后直接用Unity打开KSFramework目录,或直接双击场景KSFramework/Assets/Game.unity。
从源码安装
获取到源码后,需要通过git submodule命令获取KEngine和SLua
git submodule init
git submodule update
拉取submodule后,Windows下双击执行源码Install.bat进行安装,把KEngine和SLua相关代码链接到KSFramework各目录,然后用Unity打开
教程
- KSFramework: Unity3D开发辅助框架快速入门
- KEngine策划指南: 配置表格的编辑与编译
- KEngine: 资源的打包、加载、调试监控
- KSFramework常见问题:Lua脚本热重载,内存状态数据会不会丢失?
- KSFramework常见问题:Excel如何进行SVN协作、差异比较?
- KEngine配置表:扩展表格解析类型
结构组成
![KSFramework由KEngine和SLua结合组成]

功能特性
资源模块
- Unity 5中一键打包Asset Bundle
- AssetBundle加载器,加载时自动处理依赖关系
- 资源路径约定,含热更新资源机制
- 手动的、引用计数的资源释放策略
- 资源运行时重载(减引用计数)
配置表模块
- 自动编译Excel,支持在表中添加注释
- Excel表头,可设置数据类型(如int, array的声明)
- 自动生成配置表读取代码
- 支持惰式加载,无初始化的时间消耗
- 支持热重载,运行时修改配置表无需重启
UI模块
- 约定优于配置式的UI框架
- 快速导出当前编辑的UI
- 支持热重载,运行时修改UI脚本无需重启
脚本模块
- 路径约定,通过import函数进行加载
- 缓存机制配合import函数,可实现所有脚本的热重载
- Lua新增using函数类似于C#中的using,暴露使用table中的属性为全局使用
- 可以在编辑器非运行模式下执行Lua脚本,支持简单Lua单元测试
多语言模块
- 基于配置表模块
- 约定好多语言字符串的机制
- 多语言字符串收集器
Unity编辑器强化
- 编辑代码后,返回正在运行的游戏,强制停到正在运行的游戏,避免崩溃的出现
- 封装Unity编辑器的各种事件,如编译前、播放前、暂停时等
工程建议
建议创建两个Unity工程:code和art,一个用于代码编辑,一个用于美术编辑并导出AssetBundle。
这样code的Unity工程,只带了代码和AssetBundle,没有资源加载的缓慢过程,让Unity开发更畅快;同时也对代码部分做了保密,防止其他人员外泄。
键盘快捷键
- Ctrl+Alt+E: 在编辑UI场景时,导出UI成AssetBundle
- Ctrl+Alt+R: 在运行时,热重载所有LuaUIController
- Ctrl+Alt+Shift+R: 在运行时,热重载所有LuaUIController,并且把所有打开状态UI关闭后重新开启
- Ctrl+Alt+I: 在编辑器,打开Game.unity主运行场景
- Ctrl+Alt+O: 在编辑器,打开Ctrl+Alt+I前的一个场景
KEngine和KSFramework
定位不一样
KEngine:为了减低Unity 4.x中AssetBundle的加载、打包复杂度;
KSFramework:一站式的开发框架,可以开箱即用,整合KEngine和SLua。只支持Unity 5。
提供的模块不同
KEngine: 提供基础的资源加载(ResourceModule)功能,并以之为基础,增加配置表(SettingModule)、UI模块(UIModule)这两个核心模块;另外还有针对Unity 4.x的资源依赖打包模块。
KSFramework:基于KEngine的资源、UI、配置表模块,实现更直接的、面向具体项目的常用功能模块,并搭配SLua。
版权说明
KSFramework
Author:kelly(我的主程)
Email: 23110388@qq.com
Github:https://github.com/mr-kelly/KSFramework
欢迎大家到 github提issues
Slua
Github:https://github.com/pangweiwei/slua
Github:https://github.com/mr-kelly/slua
KSFramework:集成U3D热重载框架 - README的更多相关文章
- KSFramework常见问题:Lua脚本热重载,内存状态数据丢失?
Lua热重载 内存数据在重载后会丢失 KSFramework中,所有的UI Lua脚本是可以重载的.脚本中的一些内存数据,在重载后会丢失,比如: -- 记录一个UI界面被打开了多少次 function ...
- 热修复框架Tinker的从0到集成之路(转)
转自:http://blog.csdn.net/lisdye2/article/details/54411727 热修复框架Tinker的从0到集成之路 转载请标明出处: http://blog.cs ...
- Unity3D游戏xlua轻量级热修复框架
这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察了xlua和tolua,最终选择了xlua,原因如下: 1)项目已经到了后期,线上版本迭代了 ...
- Unity3D游戏轻量级xlua热修复框架
Unity3D游戏轻量级xlua热修复框架 一 这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察xlua和tolua,最终选择了xlua ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十七)——服务保护之动态配置与热重载
在上一篇文章里,我们通过注入sentinel component到apigateway实现了对下游服务的保护,不过受限于目前变更component需要人工的重新注入配置以及重启应用更新componen ...
- 【译】在运行时编辑代码的 .NET 热重载
今天,我们很高兴向你介绍 Visual Studio 2019 中 16.11(预览版1)中的 .NET 热重载(通过 .NET 6(预览版4)中的 dotnet watch 命令行工具).在这篇文章 ...
- 最新的.NET 热重载介绍
今天,我们很高兴的向您介绍 Visual Studio 2019 版本 16.11(预览版 1)和 .NET 6 中的 dotnet watch 命令行工具(预览版 4)中的 .NET 热重载体验的可 ...
- iOS集成ijkplayer视频直播框架,遇到的bug和坑...
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 32.0px "Helvetica Neue"; color: #555555 } p. ...
- .Net 4.X 提前用上 .Net Core 的配置模式以及热重载配置
1. 前言 在提倡微服务及 Serverless 越来越普及的当下,在 .Net Core 之前,.Net 应用的配置模式往往依赖于一个名为 web.config 的 XML 文件,耦合性高,而可扩展 ...
随机推荐
- easyUI 后台经典框架DEMO下载
采用easyui 1.2.6 + jquery 1.7.2 设计 有不明白的朋友加群或加我QQ (709047174) Jquery-EasyUi-demo点击我下载
- python3版本安装
Python环境准备 一.下载: 1.官网下载python3.0系列(https://www.python.org/) 2.下载后图标为: 二.安装: Window下: 1.安装路径: 默认安装 ...
- SharePoint 2013 Designer 自定义操作菜单
众所周知,我们在SharePoint的二次开发中,经常会添加ECB菜单或者Ribbon菜单,通常我们会采取Feature的方式去添加一个Xml,或者采取JavaScript的方式,当然,除此之外,还可 ...
- [javascript svg fill stroke stroke-width rx ry ellipse 属性讲解] svg fill stroke stroke-width ellipse 绘制椭圆属性讲解
<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...
- 制作具有SSH、MySQL功能的Chroot
由于工作需求,需要在Linux上建立SSH.MySQL两个用户. 使这两个账户连接到跳板机后仅能执行有限的命令(SSH用户只能执行SSH命令,MySQL用户只能执行MySQL命令). MySQL账户C ...
- ArcGIS Engine环境下创建自定义的ArcToolbox Geoprocessing工具
在上一篇日志中介绍了自己通过几何的方法合并断开的线要素的ArcGIS插件式的应用程序.但是后来考虑到插件式的程序的配置和使用比较繁琐,也没有比较好的错误处理机制,于是我就把之前的程序封装成一个类似于A ...
- Autodesk 招人了,开发顾问,感兴趣的或者有推荐的人扔简历过来啊
Autodesk ADN招人了,在上海,开发顾问, JD如下. 如果你感兴趣或者有人推荐,扔简历过来啊, daniel.du@autodesk.com,赶早不赶晚啊. Job Title: Dev ...
- Eclipse CDT Linux下内存分析 补记
常用工具汇总 http://www.ibm.com/developerworks/cn/linux/l-cn-memleak/ 常用的内存分析工具 http://en.wikipedia.org/wi ...
- 获取在线APP的素材图片
1.打开iTunes,搜索并下载APP 2.打开下载的APP的路径 4.对ipa包进行解压 5.找到app,右键"显示包内容"进行查看 6.结果
- IOS开发之代理的设计小技巧
1.关于代理对象的设计小技巧 在设计一个类,需要通过代理和协议来从外部获取需要的动态的数据.那么在这里设计使用代理会有两种方法. <第一种方法> 也是比较常见的: 在你设计的类中,声明一个 ...