【问题标题】:How to organize your scripts and GameObjects in game developement?如何在游戏开发中组织你的脚本和游戏对象?
【发布时间】:2018-07-27 09:48:37
【问题描述】:

我使用 Unity。

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

我遇到的主要问题是:

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

例如:

Cameras  
  ↳(CameraActivate, CameraFollow, CameraShakeOnReplay)

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

Replay  
  ↳(ReplayTimeline, ReplayControl, ReplayShakeCamera)

这种事情有规定吗?

【问题讨论】:

标签: unity3d organization


【解决方案1】:

简短的回答是:不,没有规则。

这里有一个很好的答案来解释文件夹结构:Is there a standard/recommended directory structure for Unity projects?

关于场景层次,我常用的base是:

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

但它真的取决于项目。

查看 Unity 博客中有关如何优化层次结构的这篇文章:Spotlight Team Best Practices: Optimizing the Hierarchy。在组织场景时有一些好的做法可以遵循:

层次结构指南

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

  • 动态时 在运行时创建游戏对象,如果它们不需要是子对象 由于上述原因,在生成器的根部生成事物 场景。

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

  • 尝试对您的移动变换进行分组,使您有大约 50 个左右 每个根的游戏对象。这让底层系统可以将您的 将ChangeChangeDispatch 作业转换为相当优化的工作量 线。线程开销占主导地位的数量不少;没那么多 您正在等待线程执行。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-02
      • 2023-04-02
      • 2011-11-18
      • 1970-01-01
      • 2011-04-26
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多