这段时间一直没有写日志,一方面是工作真的996(可能更晚),另外是因为做了个艰难的决定——重写整个项目。
之前的开发过程类似边学边写,其中包含许多一开始写的很冗余且不规范的代码,也没有按照完整的框架去写,许多功能都是想要加就临时加入脚本了,现在再想查之前的代码又常常会忘记在哪个脚本中,十分不方便。
后来随着代码经验越来越多,发现了越来越多的问题,感觉如果不及时止损处理的话,结果将积重难返,不待多时便会集中爆发。而我相当讨厌这种伴随着强烈的不确定性继续往前走,如履薄冰提心吊胆的感觉,所以从头建一个新工程,从头追赶到目前的进度,虽然资源现有的,需求也是一样的,但内心估计重写的话应该要挺久的。
于是,11月到现在的每个周末我都在家重写工程,画板则一直压在箱底没拿出来,好在目前代码功力已不再那么偏向初学者,加上脚本分得也很清楚。所以虽然只有周末有时间写代码,但进展迅速,一个月左右就完成了之前的大部分功能,而且过程中尝试了多种改进方法:
- (优化)钩绳系统、敌人弓矢采用对象池方法编写,提升性能。
- (优化)输入系统从InputController换成了Unity的新InputSystem,为以后做手柄配置(估计不会)预留了扩展性。
- (优化)写代码时大量引用了枚举变量,比之前使用bool开关进行管理人物状态更加灵活清晰。
- (失败尝试)尝试使用状态机分层Layer管理,但最后多层结合时会出现BUG,所以最后还是将所有状态放在一个层内管理。
- (优化)新学会了UnityEvent初级使用技巧,通过触发事件来执行脚本中函数,更加清晰。
- (优化)优化行为树结构使之更加简洁直观,去除了大量冗余的判断条件。
- (新增)纠结了很久,最终还是决定对话时给人物增加一个头像立绘,个人觉得虽然这个决定会大幅增加我的美术工作量,但却能大幅提升游戏的代入感,甚至引出玩家对游戏人物的情感共鸣。当然,立绘还是像素风格的,太精细的活我确实是不擅长的。
- (尚未进行)等战斗系统弄完,准备使用Addressable进行资源管理,虽然我目前还没研究这到底是个什么东西。
结语:
游戏的战斗系统功能写的差不多了,不过还没时间测试。这段时间算是大学毕业之后,人生中比较辛苦的一段日子了,不过好在心态健康,加上家附近就是一个菜市场,买菜回家做相当便宜,上个月坚持每天记账的习惯,到了月末一统计居然一个月时间只花了九百块左右,不愧是我。菜市场的阿姨还想让我给他家孩子辅导小学英语和数学,不过我最近实在太忙了,被我婉拒了哈哈哈。
暂无关于此日志的评论。