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

将基类附着到Unity3D场景或项目,unity3d,Unity3d,对于Unity3D中的每个场景,我总是需要一些基类来实现接口和功能,例如通过Application.LoadLevel()为更改场景委派事件 通常我会将这些脚本附加到相机上;然而,我不确定这是否是一个最佳实践,尤其是当有多个摄像头时 如何指定场景的基类 从项目中选择场景时,不能添加任何组件,也不能在“检查器”中使用任何选项 如何将子类型或基类直接附加到场景 同样,对于整个Unity3D项目,是否有任何方法可以使用基类或子类型为Unity应用程序启用独立于场景的代码?脚本必须始终附加到游戏对象

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

通常我会将这些脚本附加到相机上;然而,我不确定这是否是一个最佳实践,尤其是当有多个摄像头时

如何指定场景的基类

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

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


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

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

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

好吧,您不能将脚本附加到场景。为什么不创建一个空的游戏对象作为ca的父对象meras并将脚本应用到该对象上?很有趣…这很有意义。将其作为答案发布,我会接受它。当使用unity3d标记时,消除歧义并不需要消除歧义。标记本身就是一个问题,但我们不需要强调。我意识到这是一篇旧文章,但我觉得这是一个有价值的回应,es特别是1年后,情况仍然与当时一样。搜索Unity:第一个结果是Unity3D.com,Unity游戏引擎(通俗称为Unity3D)的主页。我也碰巧喜欢维基百科关于Unity的文章的开头一行,其中写道:“Unity(也称为Unity3D)是一个跨平台的游戏引擎,具有Unity Technologies开发的内置IDE。”很多人都知道它是Unity3D。开发者的主页url有3D。我认为Unity3D是一个公平的标签。另外,像LinkedIn这样的网站称它为Unity3D。这不是真的。我认为韦斯利的回答更多地说明了OP的直接问题,即在场景中附加脚本的最佳实践是什么。你下面的回答肯定会起作用,但你仍然需要一些script附加到场景以调用ScriptableObject.CreateInstance。在某个地方,必须有人调用“a”脚本,它将是附加到游戏对象的脚本。如果您不使用Unity的序列化,则无需为ScriptableObject操心;您可以使用任何基类或派生类。因此,从MonoBeh创建ScriptableObjectaviour毫无意义,除非您是从下拉菜单或自定义检查器触发它。编辑器脚本很可能是调用ScriptableObject的候选对象。