如何在游戏开发中组织脚本和GameObject?

时间:2018-07-26 23:49:33

标签: unity3d organization

我与Unity一起工作。

我的问题是有时我不确定如何组织文件夹中的脚本和场景中的GameObjects。 (游戏对象是您放置脚本的基本空间对象,场景是要在运行时加载的所有游戏对象的空间)。

我主要遇到以下问题:

“是否要根据gameObject的类型创建文件夹,然后添加与这些gameObject相关的所有脚本?”

例如:

Cameras  
  ↳(CameraActivate, CameraFollow, CameraShakeOnReplay)

还是“我是否要基于技术类型创建文件夹,然后添加与该技术相关的所有脚本?”

Replay  
  ↳(ReplayTimeline, ReplayControl, ReplayShakeCamera)

这种事情有规则吗?

2 个答案:

答案 0 :(得分:3)

简单的答案是:不,没有规则。

在这里您可以很好地解释文件夹结构:Is there a standard/recommended directory structure for Unity projects?

关于场景层次,我通常使用的基础是:

Cameras
├── ... 
UI
├── ...  
Managers
├── ...
Scenery
├── Static
│   └── ...
└── Non-static
    └── ...

但这确实取决于项目。

在Unity博客中查看有关如何优化层次结构的帖子:Spotlight Team Best Practices: Optimizing the Hierarchy。组织场景时,应遵循一些良好的做法:

  

层次结构指南

     
      
  • 如果每帧都有东西移动,   确保所有孩子都关心位置。仅渲染,物理,   音频或类似的核心系统应该在那里。

  •   
  • 动态时   如果不需要成为子对象,则在运行时创建游戏对象   出于上述原因,生成器的根源是   现场。

  •   
  • 您可以轻松注册生成的所有内容并沿   使用OnEnable和OnDisable生成器的ActiveInHeirarchy状态。

  •   
  • 尝试对移动的变换进行分组,以使您大约有50个左右   每个根的GameObjects。这使基础系统组可以   将每个作业转换为相当理想的工作量   线。线程开销占支配地位的人很少。没有那么多   您正在等待线程执行。

  •   

答案 1 :(得分:-1)

是的,通常您创建一个Scripts文件夹并将所有代码文件放入其中。对于游戏对象,您可能会考虑使用预制文件夹(查找预制)