找回密码
 立即注册
查看: 713|回复: 0

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

[复制链接]
发表于 2021-2-3 09:23 | 显示全部楼层 |阅读模式
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里获取组件
改变动画状态机的参数方式:转成哈希码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 13:25 , Processed in 0.090044 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表