之前刚好在整理框架做分享,顺便在这里贴一份。
最近在造轮子,事件系统的核心目的是为了降低模块间耦合,事件驱动可以更好的解耦和组织代码。本方案主要基于C#的委托实现,典型的观察者模式的应用。 技术选型: C#的委托与事件 C#的委托类型可以关联多种拥有相同形参签名的函数,并且可以使用Invoke方法顺序调用,设计上可以用作回调。 C#的event是一种限制的委托类型,额外帮助委托实现了ADD和Remove方法,设计上留作被观察者的接口,供外部方法监听。且event只能在方法外部声明,且只能由被观察者触发,虽然保证了操作安全,但是降低了自由度。 因为我希望可以实现…
编码规范 规范项目编码 术语定义 Pascal 大小写 将标识符的首字母和后面连接的每个单词的首字母都大写。 例如:CodingStandard Camel 大小写 将标识符的首字母小写,而后面连接的每个单词的首字母都大写。 例如:codingStandard 命名规范 文件及文件夹 1.文件/文件夹名遵从Pascal命名法,无特殊情况,扩展名小写。 2.C#类使用统一而又通用的文件扩展名: C# 类名 .cs,正常情况下,一个cs文件中不能含有两个及以上的类。 代码注释 public、protect等可被外界访问…
最近在把之前自己写的/用的舒服的脚手架抽出来,做通用模块。花一天时间写了一下Unity中数据表的读取和数据持久化操作。 关于数据导入其实有很多技术路线可以用。大多数都是以excel为起点(策划友好的),unity可读/可动态加载的格式(json,xml,csv,lua,assetdatabase等)为终点的 序列化/反序列化 处理方案。这部分的编码没有什么技术含量,主要的工作量在于处理C#中对于对象类型的强要求。如果用lua实现的话工作量不超两个小时,毕竟万物基于table。 目前V0.1版本采用的技术路线是,ex…
软件开发中的框架(FrameWork)主要是在多人合作中起到约束和规范的作用,帮助团队开发者更高效地组织代码,降低人员流动对团队带来的影响。需要明确的是,世界上没有最好的框架,只有最适合团队的。 框架一般会包含几个部分,具体通用逻辑的拆分,足够通用的中间件和工具,以及依赖某种特定的设计模式组织代码模块。并且,使用不同的编程思想设计的框架各有不同。不过核心思想都是保证工程内各模块的高内聚低耦合。提升代码拓展性和稳定性。 在之前的工作与学习生涯中,笔者多次负责团队代码框架的搭建和维护的工作,私以为姑且可以和大家聊聊这部…
今天早下班,火速开写教程。首先是第一个部分,认识Unity。 其实说实话我也想不起来第一次接触游戏引擎的具体心情了,可能是面对一个充满英文的庞然大物的茫然和无措吧(虽然现在有中文翻译了但是我不推荐用,中文博大精深,可读性低,理解难度高,容易误解。甚至还看到过有人用中文编程,当时就蚌埠住了)。 虽然现在回头看都感觉学习之路都一帆风顺的样子,但是实际上自己确实也是努力过碰过壁的,所以还是希望可以帮到大家,少走弯路。 **此外呢我建议大家真的做些实际的项目体会,多重构几遍代码,实践出真知。 【什么是游戏引擎】 OK那我们…
从unity5.5版本用到现在,一眨眼2020LTS都正式发布了。unity的进步肉眼可见,从之前的给个引擎框架输出全靠开发者用爱发电做插件,到现在已经收购了不少插件了(误。 也算是和Unity一同成长过了吧,也想做点有意义的事情。恰好最近打工打的很虚无,都不摸代码了,为了防止变傻。准备先把unity的新手教程维护起来,不奢求面面俱到,但是会从全流程多个角度介绍游戏引擎(不局限于unity的使用和unity本身)。 本系列教程的目的是争取让不论是想要学习引擎的策划同学,还是初学unity开发的程序同学,或者是对于图…