1,逻辑集中原则:
一定不要到处挂脚本,那样会使逻辑梳理起来非常困难。尽量在大模块的根节点上挂大脚本,里面包囊括此模块所有子孙节点的控制逻辑。
2,部分引用整体原则:
各节点脚本中都要存有其所属模块的根节点的引用,以便实现任何一个节点都能访问其所在的整个模块。
另外注意最好不要在节点脚本中public GameObject m_moduleRoot并在inspector中连接模块根节点引用,这样容易导致调整Hierarchy时引用丢失,最好是在节点脚本中private GameObject m_moduleRoot并在节点脚本的Awake函数中通过m_moduleRoot=GameObject.FindWithTag(tagOfModuleRoot)来获得模块根节点的引用。
而模块根节点脚本中要保存其所属的更大模块的根节点的引用。
3,引用集中原则:
节点保存有其所属模块根节点的引用,同时模块根节点脚本中要保存其所属的更大模块的根节点的引用。这样就够了(足够每个节点在整个Hierarchy中想访问谁访问谁了),不要再在脚本中保存其它节点的引用了,那样会导致混乱并容易造成引用丢失。
4,prefab无限可apply原则:
如果你把一个模块做成了prefab,这个prefab可能在同一个scene中添加多个,甚至添加到了多个scene中。设所有这些实例为instance(1),instance(2),...,instance(n),那么理想状态下我们应该保证对于任何一个instance(i)来说,对它点apply都不会对工程造成任何影响。注意,这是一个必可实现但又很难实现的原则。
时间: 2024-10-23 21:05:19