白云追月素 发表于 2021-2-3 09:23

Unity 2D 平台游戏框架研究(规范篇)

0.前言

Unity 2D Gamekit是一个Unity官方提供的免费插件,它是为非程序员设计的项目,使用这个插件,可以在不编写代码的情况下创建一个2D平台游戏。
作为一个新手游戏开发者,觉得这种官方开源的项目非常值得研究。从整个代码架构设计理念可以传达出Unity官方希望我们组织代码的姿势,所以带着问题和好奇,我也阅读了其源码。
在此留个笔记,也给同样对游戏架构组织有疑问的同学一点小小的帮助。
1.命名规范

代码的编写规范见过很多,其实自己一直没有一套顺手体系,这次正好整理一下官方推荐的命名规范
public 字段:小驼峰命名法(首字母小写)
没什么好说的,见过的大部分代码规范都是使用驼峰命名法
private、protected 字段:匈牙利命名法
个人感觉使用这种命名时,打出m_后,代码智能提示会帮助我快速定位到成员变量
只读属性:大驼峰命名法(首字母大写)
事件回调:大驼峰命名法
翻了整个项目,发现关于回调,用的90%都是Unity封装好的UnityEvent,还有极少情况使用的Action,没有发现使用Delegate,由此可见既然Unity对事件系统做了封装,还是更推崇使用UnityEvent的。跟event相比,UnityEvent支持序列化,也就是可以在编辑器中对事件响应进行绑定,看来官方还是更推崇可视化的操作,这样就可以对事件的订阅一目了然。但是相应的缺点就是,性能会在某些情况下差一些。但是权衡利弊,我还是会使用UnityEvent。
接口:接口名字前+“I”
用来区别类和接口的区别,这个规范也很常见,是Interface的首字母
泛型:名字前+“T”
只有一个泛型变量的时候还是用“T”表示,当产生多个泛型变量的时候要采用首字母规则
枚举:大驼峰命名法
bool变量:小驼峰命名法
有的状态代表是否正在发生,结尾使用“ing”
有的状态代表是否已经发生,结尾使用“ed”
还有一些代表状态的短语


类的扩展方法:类名+Extensions
抽象类:没有特殊规则
2.其他规范

对按钮事件的绑定:在编辑器中进行绑定
对UnityEvent事件的绑定:在编辑器中进行绑定
获取自身挂载组件的时机:Awake函数中
以前有时候在start方法里,有时候在awake里获取组件
改变动画状态机的参数方式:转成哈希码
页: [1]
查看完整版本: Unity 2D 平台游戏框架研究(规范篇)