Unity3D的API提供了很多的功能,但是很多流程还是会自己去封装一下去。当然现在网上也有很多的框架可以去下载使用,但是肯定不会比自己写的用起来顺手。
对于是否需要使用框架的问题上,本人是持肯定态度的,把一些常用方法进行封装,做成一个功能性的框架,可以很大程度上提高代码的效率,维护也方便。
对于网络上很多教程上使用的“游戏通用MVC框架”,现在看来并不符合MVC这种结构性框架的设计思想:要知道,MVC最初是被设计为Web应用的框架,而游戏中的很多事件并不是通过用户点击UI发生的,View和Controller在游戏逻辑中的占比一般都少的可怜,而且很多教程上把Model剥离出很多“Manager”模块,甚至有人把View和Controller合在一起写了UIManager——连MVC的结构都没了,为啥还要称之为MVC框架呢?
MVC: “人红是非多。。。。”
目前大部分的游戏框架——特别是小型项目的游戏框架——都是把一些数据的特定行为进行了一下封装:生成一个物件,播放一个特效,进行一次随机事件等。当然也会有一些结构性的设计或者资源管理设计如:UI的回退栈或者回退链,场景的载入记录和切换,下载队列的管理等。
在Unity的框架设计中,有一个词会经常见到:单例模式(singleton)。单例模式就是在整个游戏中只使用某个类的一个实例,核心的一句话就是public static T Instance;
即在类中定义了一个静态的自身实例供外部使用,调用方法时就是:T.Instance.Function()
。在本人最初接触这种设计方式时经常会与静态类弄混淆,