刚开始学习Unity编程时,感觉非常的不习惯。一直以来,我都是使用基于类的面向对象编程,当转到Unity开发后,发现所有的代码都是拖到一个个组件上面去的,早已习惯了的mvc,mvp等架构思想在Unity上却不太适用了。
所以在我前期开发Unity时,完全是没有架构可言的,每次都是某个组件需要什么功能,我就把相应的功能代码托上去,可是写到后面,我发现整个项目的逻辑越来越混乱,各种组件在代码中互相引用,修改某一个组件上的代码就会导致其他组件的修改。后来当我慢慢了熟悉Unity的开发,熟悉了这种基于组件的编程思想后,开始慢慢的组织自己的代码逻辑和项目架构。所以在这里,我将我这段时间对于U3D项目架构的总结记录下来。
一 文件目录架构
Unity官方文档介绍的文件目录架构如下
Assets:主文件夹,包含所有工程需要用到的资源。
Editor:所有在Editor和它的子文件夹的脚本,都不会作为运行期脚本被编译,而是作为动态添加Unity编译器功能的脚本来编译。在该文件夹和其子文件夹的脚本不能被添加到GameObject上。
Editor Default Resources:必须作为Assets的子文件夹,作为Editor脚本的资源使用,通过函数EditorGUIUtility.Load来使用。
Gizmos:场景面板中的图标图片资源,使用Gizmos.DrawIcon 函数在场景面板新建图标,图标的图片资源必须位于这个文件夹内。(比如Unity的各种插件)
Plugins:所有的插件资源,包括用C/C&