点击塔防全部总结
主要内容如下
- 数值不要太变态,如果自己做配置,留给自己配置的项越少越好啊
- 想办法活下去才有希望(先吃饱在谈理想)
- 进一步熟悉使用QF
- 项目一开始就放在github上
- 要注意继承的代码后缀,UI也是用后缀
- 项目中勇于尝试c#新语法
- 脚本文件原则数量越少越好
- 一般来讲遵循迪米尔法则
- 初始和回收用spawn,despawn;
- 用.length-1做最后索引
- 重构函数包括改名字啊
- 重要而且感觉容易出错的代码做好单元测试
- update可以多写点逻辑
- 所有集合命名都要带s,命名就是英文加数字编号,别整ABCD
- 用Array.IndexOf()索引前提是数组元素都无重复,就这样用,方便修改啊
- 被动接受功能的物体,不需要有功能脚本,交给主动的物体吧
- 别注释todo了
- 特效实例化的顺序:枪口特效 ->子弹飞行特效 ->飞出音效 -> 击中爆炸特效 -> 爆炸声音音效 -> 死亡特效 -> 死亡声音特效
- 寻求稳定的软件版本
- 组件思想和低耦合的重要性
- 属性中不要用属性,属性的初始靠对应之字段
- 母体工作流,先做成母体,然后覆盖现有的
- 继承的深度,最多两层,特例3层
- UI用MVC相关架构, GamePlay用组件方式,感觉必要时候才用继承方式
- 重构思路:精简代码,做模块化,做子系统
- 枚举最好做一个Null值
- json初始默认值搞假数据方便测试
- 初始化和回收之间需要多考虑写什么
- 初始化单例、初始化各核心模块、并统一在这里设置各个脚本里需要的引用关系
- 尽量不要在Awake()、Start()里做操作
- 需要out太多信息时候,就要用类或结构代替参数重构之
- 装备几个属性不一定做字段或属性,相关联几个可以组合做成类
- 一切索引0开始
- Update Start Awake 做成虚方法更灵活吧
- 类图千万别心急啊,认真做,弄漂亮
- 关卡场景需要大预制体,但是呢有些不适合大预制体,不是绝对啊
- 策划案用word来写啊
- 未来方向是3D游戏,并且盈利可以捐部分钱做公益,
- 游戏状态机中的逻辑写在属性中啊,分散各处有点乱啊
- 参数传递规则:是在一级的时候能得到值,就在那里得到
- 函数里代码要紧凑,按照函数单一原则做成小函数,然后按照先后顺序写在某个大函数里,避免顺序不同等bug
- 主要场景命名First
- 为了体现buff,不建议做在属性里,而是在客户端的调用方法的参数里,可能会好点
- hierachy面板也要做管理
- 脚本式组件命名要中立一点
- 拖住不放就自动切图了
- 人脉的重要性,认识圈子里大佬
- FGUI能解放双手?
- 销毁对象函数都叫RecycleObject,需要初始函数都叫NeedData
- 回收对象的墙一律起名字叫RecycleObjectWall,做成预制体,所以说一切可复用都要进行下去
- 后期统一了技术选型,再把框架做到极致和健壮,哪怕违背脚本主动原则
- 配置开始的时候就全部加载完啊
- 分清GameLevel和SceneLevel 避免混淆啊
- 最重要一条,地图数据除了用tileMap还可以用数组来生成,提高工作效率
- 对象有两种死亡方式的时候统一建议做成Hp减少,通过Hp属性来调用共同的一些函数
- 逻辑分散是罪恶根源,一切对外接口都是方法,自己写的库其实很靠谱,关键还得多累积组件,方便日后开发呢
#if
编辑器宏不要用了,因为不方便重构- 一个属性功能要考虑正,反两面,并且还要考虑正,反的极值啊,比如最大,最小
- 用宏做代码测试权限