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由KEngine和SLua结合组成]

View on ProcessOn

功能特性

资源模块

  • 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

KSFramework(集成U3D热重载)README

KSFramework:Unity3D开发框架快速入门

Slua

Github:https://github.com/pangweiwei/slua

Github:https://github.com/mr-kelly/slua

KSFramework:集成U3D热重载框架 - README的更多相关文章

  1. KSFramework常见问题:Lua脚本热重载,内存状态数据丢失?

    Lua热重载 内存数据在重载后会丢失 KSFramework中,所有的UI Lua脚本是可以重载的.脚本中的一些内存数据,在重载后会丢失,比如: -- 记录一个UI界面被打开了多少次 function ...

  2. 热修复框架Tinker的从0到集成之路(转)

    转自:http://blog.csdn.net/lisdye2/article/details/54411727 热修复框架Tinker的从0到集成之路 转载请标明出处: http://blog.cs ...

  3. Unity3D游戏xlua轻量级热修复框架

    这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察了xlua和tolua,最终选择了xlua,原因如下: 1)项目已经到了后期,线上版本迭代了 ...

  4. Unity3D游戏轻量级xlua热修复框架

    Unity3D游戏轻量级xlua热修复框架   一 这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察xlua和tolua,最终选择了xlua ...

  5. 通过Dapr实现一个简单的基于.net的微服务电商系统(十七)——服务保护之动态配置与热重载

    在上一篇文章里,我们通过注入sentinel component到apigateway实现了对下游服务的保护,不过受限于目前变更component需要人工的重新注入配置以及重启应用更新componen ...

  6. 【译】在运行时编辑代码的 .NET 热重载

    今天,我们很高兴向你介绍 Visual Studio 2019 中 16.11(预览版1)中的 .NET 热重载(通过 .NET 6(预览版4)中的 dotnet watch 命令行工具).在这篇文章 ...

  7. 最新的.NET 热重载介绍

    今天,我们很高兴的向您介绍 Visual Studio 2019 版本 16.11(预览版 1)和 .NET 6 中的 dotnet watch 命令行工具(预览版 4)中的 .NET 热重载体验的可 ...

  8. iOS集成ijkplayer视频直播框架,遇到的bug和坑...

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 32.0px "Helvetica Neue"; color: #555555 } p. ...

  9. .Net 4.X 提前用上 .Net Core 的配置模式以及热重载配置

    1. 前言 在提倡微服务及 Serverless 越来越普及的当下,在 .Net Core 之前,.Net 应用的配置模式往往依赖于一个名为 web.config 的 XML 文件,耦合性高,而可扩展 ...

随机推荐

  1. AloneJs.msgbox() —— 弹出消息框

    一.引用 <link href="https://cdn.suziyun.com/alonejs.min.css" rel="stylesheet" /& ...

  2. 总结CSS3新特性(颜色篇)

    颜色: CSS3新增加了hsl(), hsla(), rgb(),rgba()四个函数来创建color值; hsl(): hsl函数:h(色调),s(饱和度),l(亮度); 色调:为0-360之间的数 ...

  3. CSS3绘制六边形

    因为很简单,所以先总结一下:使用CSS3绘制六边形主要使用伪类:before和:after在源元素之前和之后再绘制两个元素,并利用css3的边框样式,将这两个元素变成三角形放置在源元素的两端即可. ( ...

  4. UIAlertView' is deprecated: first deprecated in iOS 9.0 - UIAlertView is deprecated. Use UIAlert

    UIAlertController * cancleAlertController = [UIAlertController alertControllerWithTitle:nil message: ...

  5. 我的android学习经历

    我为什么选择android? 我基本上前一年的时间都是在学习java的语法和线程之类的,没有注意java的分类,所以到现在慢慢接触到深处的时候我了解到,java的优势主要在web,而我不是特别喜欢网页 ...

  6. Sandcastle----强大的C#文档生成工具

    最近客户索要产品的二次开发类库文档,由于开发过程中并没有考虑过此类文档,而且项目规范比较,持续时间比较长,经手人比较多,还真是麻烦,如果人工制作文档需要是一个比较大的工程.还好有这个文档生成工具,能够 ...

  7. 最新Internet Download Manager (IDMan) 6.25 Build 20 32位 64位注册破解补丁

    0x00 IDMan介绍 Internet Download Manager提升你的下载速度最多达5倍,安排下载时程,或续传一半的软件.Internet Download Manager的续传功能可以 ...

  8. png-8 和 png-24的区别

    png是一种图片格式,是Portable Networks Graphics的缩写,做ping. png8和png24的区别如下. 1 "PNG8"是指8位索引色位图," ...

  9. 使用dig查询dns解析

    原文地址:使用dig查询dns解析 作者:chenwenming 一般来说linux下查询域名解析有两种选择,nslookup或者dig,而在使用上我觉得dig更加方便顺手. 如果是在debian下的 ...

  10. Html5拖拽复制

    拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需 ...