工作日志
- 昨天算是开始复健性质的工作
- 简单写了一点点代码,简单看了两个 KCC 的 Walkthrough,花点时间看了一下 zenject 的工厂
- KCC 的 Walkthrough 没啥可说的,直接用它现在有的代码就可以了。原型阶段我应该只需要这些就够了
- 重点说一下 zenject 的工厂,我觉得他的工厂和我想象中不一样的地方在于:它不仅仅只是在绑定工厂到 container,它的重点似乎是将其他的依赖注入注入到工厂本身里。这个才是它的重点。
- 在这里理念下,工厂本身是不重要的。如果有任何初始化的逻辑是推荐写到对象类的某个初始化方法中的。工厂因此大部分都是 placeholderFactory,仅仅用来标识参数类型。并且习惯性把工厂类定义写到对象类里,比如 Enemy.Factory
- 因此也没太搞清楚怎么具体写有参数的 Create。比如 Enemy.Factory.Create(float)这样。如果 Enemy 是非 Monobehaviour 类是知道怎么写的。但是如果 Enemy 是 MonoBehaviour 类,感觉就不知道怎么写了。那个 Construct 参数永远对不上。很奇怪。
- 如果要真的做上面所说的那种东西,感觉应该要继承 IFactory 类,然后最大的不同在于:在工厂类的构造函数中需要手动把 Container 注入进去。因此我觉得这样有点太麻烦了。
- 进阶的部分:可以利用多态来绑定抽象工厂。具体参照这个就可以:https://github.com/modesttree/Zenject/blob/master/Documentation/Factories.md#advanced
- 简单做了一个角色移动和左键生成对象的功能,然后发现很多常用的功能是可以移到 GameUtil 里的
- 具体技术方面的上面大概已经说完了,下面说点具体其他方面的东西。
目前两个项目的压力还是不小的。合作项目的原型周期时间长度确实也比我预想中长一些。另外我低估了重新写一个项目的难度,这难度倒并不在于技术上,而是心态和计划安排上。既然想要重新从头开始写,我就很想朝着一个至少想象下有趣的方向来写。事实上,我现在脑内所能想到的游戏总让我觉得“没那么有趣”
另外一个问题是,如果按照那个视频的思路,把做游戏看作是搜索算法,那么我的问题就会变成需要先复刻一遍我已经写过的东西。这在我的心理上几乎是很难接受的。我远远低估了这一点。除去我个人懒惰的因素,我内心深处觉得要写一个已经写过的画面简略版的游戏是没有意义的。
这两点导致我非常迷茫,直接性摆烂了两周。
但是无论如何我现在又重新开始写了。可能自己做东西的缺点就在于此,你总要在反复的摆烂和折磨自己的焦虑之间来回循环把。
优化事项
今日目标