QFramework Pro 开发日志(七)v0.4 版本审核通过 与 对话编辑器功能预告
经过一周的工作,v0.4 版本总算完成了。
就在刚刚笔者在 AssetStore 提交了 v0.4 版本。
v0.4 版本主要内容有两个
- 一键生成简单继承类图功能
- 底层兼容 QFramework v0.14.x
其中一键生成类图功能的工作量不是很多,写功能加上提交版本前的测试和优化总共加起来不到 4 天。
但是底层兼容 QFramework v0.14.x 就花了很多时间。
先看看功能吧,一键生成简单继承类图的功能和上一篇开发日志的差不多。
这次不同的是,支持了中英文切换。
其他的功能和上一篇的开发日志差不多,这里就不赘述了。
为什么 v0.4.0 版本新增内容不多却花了一周多的时间?
答案是都花在了 QFramework 开源版上边了。
最开始 v0.3.4 版本提交审核后,开始着手做一键分析代码的功能,差不多 2 ~ 3 天做完了。
做完了之后 AssetStore 审核还没结束,然后就打算自己找点事情做。
就开始搞 QFramework 的开源版了。
上一次大规模的重构 QFramework 是在两年前,重构完了之后写了一个 QFramework 使用指南 2020,虽说是 2020 ,但是其实是 2019 年下半年写的。而两年后的现在,QFramework 使用指南上的很多文档都有点过时了,于是就开始整理 QFramework 的文档。
在整理过程中有了一些思考。
自己一直都懒得更新文档,尤其是 QFramework 使用指南 2020,部署在自己主页上,每次修改都很麻烦。而且有得童鞋用的 QFramework 版本是比较老的版本,一些功能的使用可能长时间不更新 QF 会找不到文档。
所以在想要不要做一个 QFramework 的编辑器内置文档的功能。
然后就开始做这个功能了。
现在功能大致如下:
编辑器内的 Markdown 文档:
笔者将使用指南 2020 都装到 QFramework 编辑器里了。
API 文档:
其实大部分主要的时间都花在 API 文档上了,大致原理是通过反射分析代码的 Attribute。
群内的童鞋提议做一个 API 搜索功能,但是这个版本来不及了,于是就把一些自己常用的 API 整理完,等 Pro v0.3.4 版本审核通过之后就开始着手准备 Pro v0.4.0 版本的审核提交了。
除了整理 API,还有一项工作,就是支持了 QFramework 编辑器的中英文切换,如下:
中文:
英文
最后由于在 v0.5.0 版本,笔者打算做一个对话编辑器-DialogueKit,DialogueKit 的底层由 ActionKit 驱动,所以笔者根据需求重新设计了一下 ActionKit 的 API,当然旧版本的 API 也是兼容的。
简单展示一下:
旧版本的 API:
新版本的 API:
新旧版本的区别就是,旧版本如果想要实现一个自定义的 Action,则需要继承一个 Action 基类。
新版本则只继承一个 IAction 接口即可。
像对话编辑器的存储文件一般都是用 ScriptableObject,使用 ScriptableObject 就需要先继承 ScriptableObject,那么对话编辑器中的对话节点继承了 ScriptableObject 就没办法继承 Action 基类了。
但是如果是 IAction 接口的话,是可行的,于是笔者就着手重新设计了 ActionKit,使用了更少的代码,实现了相同的功能。
而且提供了除了实现接口、或者继承基类之外新的扩展方式,就是直接拿到 IAction 的生命周期回调,代码如下:
新版 ActionKit 用了更少的代码,更清爽的结构,提供了更多的功能,这个就是笔者现在和两年前的笔者代码实力水平的对比。
写完了新版 ActionKit 后,对应的 DialogueKit 的 API 设计就容易了许多,大致用法如下:
以上是一个基本的 API 雏形,设计好一个大致能跑的雏形之后,笔者就搞了下对话编辑器部分,这部分目前很简陋,如下图所示:
这个功能也是在等待 AssetStore 审核的时候抽空写的,基本能跑,但是对话编辑器的基本的需求还没不能满足,需要再花点时间,而这个对话编辑器,也就是 DialogueKit 就是笔者在这个版本提交之后,v0.5.0 版本的主要开发内容。
而 QF Pro 的 DocKit 的功能,笔者已经在两个项目里用起来了,一个是笔者自己的鬼山之下,另一个准备的一个独立游戏课程案例,这个课程案例也会上架到 Steam。所以 DialogueKit,也会直接用在自己的这两个项目上。
毕竟只有真在项目验证过,工具才会慢慢成熟,对应的课程也是一样的,如果不真刀真枪地在战场上厮杀过,在课里讲出来的东西自己都没有底气。
好了废话不多说啦,以上就是这段时间自己做的事情。其中 v0.4.0 已经提交审核,并在自己的平台上已经发布。
另外,由于 QF Pro 新增了功能,所以在 v0.4.0 版在审核通过之后,QF Pro 从原来的 5 刀,涨价到 6 刀。
奇怪的是,v0.4.0 版本在下午 5 点提交的审核,而在刚刚写完此文时,也就是 8 点,就收到审核通过的邮件。
em..... 本来想给大家留一段时间 5 刀的价格的,但是没办法了,哈哈。
这篇的内容就这些。
- QFramework Pro AssetStore 主页(v0.4.0 y已审核通过):http://u3d.as/SJ9
- 快速迭代版(众筹地址)(v0.4.0 已发布):https://www.gamepixedu.com/course/72
- QFramework 开源版地址(编辑器内文档和 API 文档已包含):https://github.com/liangxiegame/QFramework
- QFramework QQ 群:623597263
- 此文首发于 http://doc.qframework.cn 或 https://qframework.cn
- 转载请注明地址:https://liangxiegame.com 在这个地址可以看到我全部的作品链接
QFramework Pro 开发日志(七)v0.4 版本审核通过 与 对话编辑器功能预告的更多相关文章
- [译][ABP vNext]ABP CLI,v0.18版本的新模板和其他功能
ABP CLI,v0.18版本的新模板和其他功能 ABP v0.18已发布, 包含解决的70+个issue,500+次提交 网站更改 abp.io网站完全更新以突出ABP框架的目标和重要功能.文档和博 ...
- Kinect For Windows V2开发日志七:照片合成与背景消除
上一篇里讲到了Kinect可以从环境中区分出人体来.因此可以利用这个功能,来把摄像头前的人合成进照片里,和利用Photoshop不同的是,这样合成进去的人是动态且实时的. 简单的思路 BodyInde ...
- 仿酷狗音乐播放器开发日志二十七 用ole为窗体增加文件拖动功能(附源码)
转载请说明原出处,谢谢~~ 中秋到了,出去玩了几天.今天把仿酷狗程序做了收尾,已经开发完成了,下一篇博客把完结的情况说一下.在这篇博客里说一下使用OLE为窗体增加文件拖拽的功能.使用播放器,我更喜欢直 ...
- PicLite 开发日志 (v0.0.3)
PicLite 开发日志 (v0.0.3) 感谢您阅读本片文章! Gitee 地址:https://gitee.com/XiaoQuQuSD/pic-lite. 新增功能 当错误出现时不再强制 rai ...
- PicLite 开发日志 v0.0.2
PicLite 开发日志 (v0.0.2) 感谢您阅读本片文章! Gitee 地址:https://gitee.com/XiaoQuQuSD/pic-lite. 新增功能 添加复制 url 的格式选项 ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- U-Learning 后端开发日志(建设中...)
目录 U-Learning--基于泛在学习的教学系统 项目背景 技术栈 框架 中间件 插件 里程碑 CentOS 7搭建JAVA开发环境 接口参数校验(不使用hibernate-validator,规 ...
- 《Invert》开发日志05:终止
今天终于看了久闻大名的<独立游戏大电影>,然后我就做了一个坑爹的决定:终止“Invert”项目的开发.没错,在还没正式开工之前,我就决定停掉这个项目,而且是永久终止.做这个决定并不是因为觉 ...
- [课程设计]任务进度条&开发日志目录
任务进度条&开发日志目录 周期 时间 任务 Sprint One 11.14 ● Scrum团队分工及明确任务1.0 Sprint One 11.15 ● Scr ...
随机推荐
- Leetcode随缘刷题之寻找两个正序数组的中位数
我一上来没读清题,想着这题这么简单,直接就上手写了: package leetcode.day_12_05; import java.util.ArrayList; import java.util. ...
- Java == 和 equals 的区别(面试描述)
== == 是一个比较运算符 既可以判断基本类型,又可以判断引用类型 如果判断基本数据类型,判断的是值是否相等 如果判断的是引用类型,判断的是地址是否相等,判断是不是同一个对象 equals equa ...
- 大话PHP设计模式笔记
针对PHP的设计模式进行总结记录. 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻 ...
- Solution -「洛谷 P4389」付公主的背包
\(\mathcal{Description}\) Link. 容量为 \(n\),\(m\) 种物品的无限背包,求凑出每种容量的方案数,对 \(998244353\) 取模. \(n,m ...
- Centos 7.6 使用 kubekey 部署 kubesphere v3.1.0
文章目录 主要功能 硬件要求 Kubernetes版本要求 配置主机之间的免密 安装所需依赖 下载KubeKey 创建Kubernetes集群以及KubeSphere kk命令使用方式 修改配置文件 ...
- Swagger2简单实用
前后端分离很好用的api <!--swagger--> <dependency> <groupId>io.springfox</groupId> < ...
- [Java]程序运行时的内存分配
本文出处:<Thinking in JAVA> 寄存器这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部.但是寄存器的数量极其有限,所以寄存器根据需求进行分配.你不能直接控制 ...
- [旧][Android] View 工作原理(一)
备注 原发表于2016.05.23,资料已过时,仅作备份,谨慎参考 前言 本文参考<Android 开发艺术探索>及网上各种资料进行撰写,目的是为自己理清 Android 中 View 的 ...
- [旧][Android] ButterKnife 浅析
备注 原发表于2016.05.08,资料已过时,仅作备份,谨慎参考 前言 自上星期写 Retrofit 写吐之后 ... 我问大队长能不能换个其他什么东西写,大队长就说了个单词 ButterKnife ...
- 挖到一款免费好用的web报表插件
最近公司项目需要用到报表,公司领导要求我来调研下报表工具.开始的时候了解了目前市场上功能强大,占有率高的两款报表工具,帆软报表和润乾报表,这两款报表工具功能比较强大,覆盖的行业较广,基本能满足所有的报 ...