将基类附加到Unity3D场景或项目

时间:2012-07-04 04:06:00

标签: unity3d

Unity3D中的每个场景,我总是需要一些实现接口和功能的基类,例如通过Application.LoadLevel()委派事件来改变场景。

通常我将这些脚本附加到相机;但是,我不确定这是一种最佳做法,特别是当存在多个相机时。

如何指定场景的基类?

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

unity-project

unity-inspector

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

同样对于整个Unity3D项目,有没有办法基类或子类型为Unity应用程序启用独立于场景的代码?

2 个答案:

答案 0 :(得分:2)

脚本必须始终附加到游戏对象。看作游戏对象可以是父对象,您可以将您的摄像机分组在一个单亲家庭下,并将您的脚本应用于该父母。

答案 1 :(得分:0)

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