【发布时间】:2012-12-05 18:38:37
【问题描述】:
在 Unity 中,有什么好的方法可以创建一个可以作为全局类在任何地方访问的单例游戏管理器,该类具有静态变量,这些静态变量将向每个提取这些值的类吐出相同的常量值?在 Unity 中实现它的方法是什么?我必须将它附加到游戏对象吗?它可以在文件夹中而不在场景中直观地出现吗?
【问题讨论】:
-
应该注意的是静态变量和单例在本质上可以在场景转换中生存,因此在这方面应该小心对待
-
你不能在 Unity 中使用单例。它是游戏引擎和所谓的“ECS”系统 (en.wikipedia.org/wiki/Entity_component_system) 的基础。
MonoBehaviors没有意义,除非它们是Component“附加”到GameObject。 游戏引擎场景中的一切都是“单例”,即实例化对象。游戏场景中只有一个“lara croft”。如果您碰巧需要在场景之间存在的 MonoBehavior,只需在预加载场景中使用DontDestroyOnLoad使其持久化。 -
就这么简单...stackoverflow.com/questions/37276811/… 一行代码
SoundEffects soundEffects = Object.FindObjectOfType<SoundEffects>();这不是问题。 -
这篇 unitygeek.com/unity_c_singleton 博客很好地解释了单例管理器类
标签: c# design-patterns unity3d singleton