2

对于 Unity3D 中的每个场景,我总是需要一些基类来实现接口和功能,例如通过Application.LoadLevel().

通常我已经将这些脚本附加到相机上;但是,我不确定这是最佳实践,尤其是在存在多个摄像头的情况下。

如何指定场景的基类?

从项目中选择场景时,不能添加任何组件,也不能在检查器中使用任何选项。

统一项目

统一检查员

我如何子类型或将基类直接附加到场景?

同样对于整个 Unity3D 项目,是否有任何方法可以基类或子类型来启用独立于场景的 Unity 应用程序的代码?

4

2 回答 2

2

脚本必须始终附加到游戏对象。看到游戏对象可以作为父对象,您可以将您的相机分组到一个父对象下,并将您的脚本应用到该父对象。

于 2012-07-04T04:41:20.140 回答
0

您可以使用ScriptableObject.CreateInstance创建一个可以与场景一起存储但不必附加到游戏对象的类。但是,您需要对该实例的引用,使用 MonoBehaviour 实例进行序列化,并且在 Inspector 中可见,以便能够双击它并在 Inspector 中查看序列化的实例变量(如果您不需要ScriptableObject 的 Inspector,那么只要您有对它的引用,它将与场景数据一起保留)。这可能比仅仅将 ScriptableObject 设置为 MonoBehaviour 更有意义,也可能没有。ScriptableObject 实例也可以存储为资产,如预制件,如果您在多个场景中需要它,您应该这样做。

于 2012-07-05T16:32:05.223 回答