博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KSFramework:集成U3D热重载框架 - README
阅读量:6306 次
发布时间:2019-06-22

本文共 1822 字,大约阅读时间需要 6 分钟。

KSFramework

 + + Framework = KSFramework

KSFramework是一个整合KEngine、SLua的Unity 5开发框架,并为程序、美术、策划、运营提供辅助工具集。

热重载是KSFramework的开发重点——在不重启游戏的前提下,重载代码、配置表可立刻看到修改效果,最大限度的提升开发、调试的速度,方便运营阶段热更新。

安装

从产品包安装

你可以从页面下载最新版本的产品包。

解压后直接用Unity打开KSFramework目录,或直接双击场景KSFramework/Assets/Game.unity。

从源码安装

获取到源码后,需要通过git submodule命令获取KEngine和SLua

git submodule initgit submodule update

拉取submodule后,Windows下双击执行源码Install.bat进行安装,把KEngine和SLua相关代码链接到KSFramework各目录,然后用Unity打开

教程

结构组成

[KSFramework由KEngine和SLua结合组成]

363476-20160710200515249-63313787.png

功能特性

资源模块

  • 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: 
Github:

欢迎大家到 

Slua

Github:

Github:a

本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/5658437.html,如需转载请自行联系原作者

你可能感兴趣的文章
完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
查看>>
iOS8 Push Notifications
查看>>
各大名企笔试及面经大全(程序猿必读)
查看>>
Oracle 连接、会话数的查看,修改
查看>>
Python使用QRCode模块生成二维码
查看>>
英语学习的重要性
查看>>
Android中Handler引起的内存泄露
查看>>
原产地政策,jsonp跨域
查看>>
HDU 1143 Tri Tiling(递归)
查看>>
ffmpeg参数具体解释
查看>>
记一次公司仓库数据库服务器死锁过程
查看>>
Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
查看>>
【Struts2学习笔记(2)】Action默认值和配置Action于result各种转发类型
查看>>
轨磁条简介
查看>>
(算法)交错的字符串
查看>>
hdu 5471(状压DP or 容斥)
查看>>
oracle.jdbc.driver.OracleDriver和oracle.jdbc.OracleDriver这两个驱动的区别
查看>>
NSQ部署
查看>>
git常用命令记录
查看>>
IBM发布新一代云计算工具包MobileFirst Foundation
查看>>