Unity3D中的每个场景,我总是需要一些实现接口和功能的基类,例如通过Application.LoadLevel()
委派事件来改变场景。
通常我将这些脚本附加到相机;但是,我不确定这是一种最佳做法,特别是当存在多个相机时。
如何指定场景的基类?
从项目中选择场景时,不会添加任何组件,也不会在检查器中添加任何选项。
我如何将基类直接子类型或附加到场景?
同样对于整个Unity3D项目,有没有办法基类或子类型为Unity应用程序启用独立于场景的代码?
答案 0 :(得分:2)
脚本必须始终附加到游戏对象。看作游戏对象可以是父对象,您可以将您的摄像机分组在一个单亲家庭下,并将您的脚本应用于该父母。
答案 1 :(得分:0)
您可以使用ScriptableObject.CreateInstance创建一个可以与场景一起存储的类,但不必将其附加到游戏对象。但是,您需要对实例进行引用,使用MonoBehaviour实例进行序列化,并在Inspector中可见,以便能够双击它并在Inspector中查看序列化的实例变量(如果您不需要)对于ScriptableObject的Inspector,只要你有一个对它的引用,它就会与场景数据保持一致)。这可能比使ScriptableObject成为MonoBehaviour更有意义。 ScriptableObject实例也可以存储为Asset,就像预制件一样,如果你需要在多个场景中,你应该这样做。