1.不知道是否需要写成public的时候,先写成private。
2.要保证代码有一定的原则性,比如说,调用关系的确定性,不要相互调用。若遇到需要相互调用的地方,不要用单例,
可以通过事件的监听来确定方向。若事件参数和预期参数不符,可以再声明一个信号,使用信号二次转发。
3.写到现在,感觉UI和逻辑的分离也不是非做不可的;可以把它们考虑成组合模式,UI和逻辑共同组合成某个代码块。
下面例子,就是把UI和逻辑放到了一起。子UI控件把需要处理逻辑的信号,转发给管理器,统一由管理器处理综合逻辑。
4.有人需要对数据进行处理的时候,不要直接放数据给他们。提供各种辅助方法。
5.Convention Over Configuration:约定大于配置。例:确定的约定下,我们只需要截取末尾的数字即可,不需要另外特殊配置。这种东西还是要看具体情况。
- MFPS插件学习
这是一套基于PUN2的联网FPS游戏源码。
看到一点记录一点心得吧。希望以后我能够随手写出逻辑清晰结构优良的代码。
1.Kit_IngameMain
核心逻辑都在此处运行。
列出了所有游戏要用到的功能模块,变量,物体,预制体,如:游戏信息模块,玩家Prefab,相机,玩家显示HUD模块,击杀显示模块,粒子撞击处理模块,积分面板模块,
胜利UI显示模块,等等...
凡是分了模块处理的,它都写成了抽象类,抽象类基本继承自Monobehaviour/ScriptableObject,里面象征性的写了几个该模块一定要做到的函数或是代表性的变量,具体实现根据不同的子类实现,即可实现多样性。