查看: 2556|回复: 1

[制作感言] 午时书开发-我是怎么做游戏编辑工具的

[复制链接]
梦石
2
星屑
833
在线时间
48 小时
注册时间
2020-4-30
回帖
28
发表于 2020-6-6 20:16:39 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 案板上的咸鱼 于 2020-6-6 20:19 编辑

貌似论坛里面用unity开发的朋友不多,但是我还是分享出来一下。有兴趣的朋友可以github拉取工程玩玩

前言
本来应该前两天就会更新这一篇内容的,但是由于去做视频去了,耽搁了两天,虽然视频本身做的质量不算高,但是主要有部分游戏内容展示,大家对游戏感兴趣的可以支持一下呢
https://www.bilibili.com/video/BV155411W7Uj#reply3002285780

说回正题哈
授人予鱼不如授人以渔
我想过直接将做好的这款工具直接共享出去,然后就写写怎么使用就好了,但是我发现一个事实。
脱离游戏业务逻辑的轮子,别人拿到后其实没有任何参考价值。
这也是我没有直接使用现成的视觉小说插件原因,因为要改动起来太麻烦了。
所以下面我将会以如何制作编辑工具为出发点,给大家普及一个游戏重要核心工作,为游戏造自己业务相关的工具轮子。

共识
在开始介绍工具与代码之前,先达成一个共识。
即是无论做何种类型的游戏业务功能,都是要注意逻辑与数据分离的。一款设计良好的框架,均是以数据为驱动。
[fold=举例]我们要做角色控制器,实现角色移动的功能
需要先定义数据:是否处于移动状态 移动的朝向 移动的具体速度 是否有加速度缓冲
这些都是数据。
然后实现逻辑功能:检测到移动状态时,让角色播放move动画,当移动速度值发生改变,修改每一帧移动方向上的角色位置大小。
而具体是什么方式检测、通过事件呢?还是通过循环去判定呢?无关紧要,根据实际功能需求来即可。
这样的好处是:
表现的归表现,表现层出现的问题不会影响到实际的数据,也就是即是表现出现了偏差,但是只要你底层数据计算是对的,那就不会出现太严重的灾难。
而编辑器的本质,就是对业务数据的记录。[/fold]
扩展Unity的编辑器功能

首先你想要自己做编辑器,其实对新手来说最困难一点是,无法制作工具的窗口界面。
因为在过去的Unity版本中,UnityEditor面向过程编辑界面的方式真的非常反人类。很多程序同学都困在我有很好的想法,但是却没地方去写它。
对于这种问题……我只能说。
既然做不到使用原生的UnityAPI,我们可以使用别人的轮子呀!随着游戏引擎的发展,我相信后面对基础需求层面的轮子会越来越多,后续的程序员们更关心的应该是自己想要实现什么的业务功能。
因此,我这里推荐Odin - Inspector and Serializer 这个插件
它有什么作用呢?[fold=举例]创建这样的窗口配置界面
v2-c0a7fe0b5597727413cc5b89e8bbf567_720w.jpg
只需要书写基础窗口脚本,继承插件的窗口
v2-8a56ffaaf26047d0c5beb56d6e2b85be_720w.jpg
然后直接定义公有成员,在公有成员类里面直接开始加属性即可。
v2-10a121e993e219cfdd7e0feebad24716_720w.jpg
可以毫不留情的说,当你选择一款正确的插件,你的功能耗时直接减少了一半!这个插件的教程功能有自带的窗口演示,非常人性化,各位可以下载下来研究。
[/fold]

[fold=AVG的文本编辑业务功能]因为剧情是线性触发的,这里的业务逻辑实现方式与新手引导特别相似。各位可以看下一小节的配置是由一个一个节点串联而成的
v2-851a03e43680eb148b23a1c73a6687fa_720w.jpg
像这样主要为先后顺序,而很少并行表现的业务功能,最后使用协程的方式来实现底层的逻辑更新。
以当前游戏的一个剧情流程举例:
v2-3a32acca65e55068382a14a99e06ad41_720w.jpg
启动一个主体线程后,以章节、段落、事件为点进入配置的具体事件。
同样,表现层的动画时间也能很方便的兼顾到游戏流程中,像通常的实现方式,比如实现我要等到UI层黑屏结束后再执行某个功能,去做事件监听或者循环等待,很容易出现流程混乱的问题(如果你现在正在做相关的功能界面的开发而动画表现又非常的多,我非常建议使用协程这种方式做,万象物语的UI动画能保持高水准同时业务逻辑不乱序,正是使用这种方式)
v2-87f54e2f055ff16b8581376d46627c0e_720w.jpg
[/fold]

下面我还是实现我的承诺,共享出这套工具
但是这套工具本身并不是商业化的产品,它缺陷非常的明显,即是业务功能单一。但是优势也特别明显——简单!
工具的说明图有点多,我就不一一的搬运了,https://zhuanlan.zhihu.com/p/146352268这个帖子里面有
工程地址:
Unity版本2019.3.2f1
https://link.zhihu.com/?target=h ... s71371/NovelsEditor

评分

参与人数 1赞 +1 收起 理由
89444640 + 1 塞糖

查看全部评分

梦石
0
星屑
4881
在线时间
425 小时
注册时间
2019-10-22
回帖
647
发表于 2020-6-6 23:26:33 | 显示全部楼层
沙发 先下载康康  回来再评论
















回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部