unity中实现伪单例的写法
时间: 2024-03-29 17:40:05 浏览: 100
UnitySingleton:在Unity中实现单例模式的最佳方法
在 Unity 中,有时候我们需要在多个场景(Scene)中使用同一个对象,但是又不希望使用单例模式,这时候可以使用伪单例模式。
伪单例模式的实现方式与单例模式类似,但是不需要将对象设置为全局唯一的,而是在每个场景中只创建一个实例,达到类似单例的效果。
下面是一个在 Unity 中实现伪单例的示例代码:
```csharp
public class MyPseudoSingleton : MonoBehaviour
{
private static MyPseudoSingleton instance;
private void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
}
```
在这个示例中,我们在 Awake 方法中检查 instance 是否为 null,如果是,就将当前实例赋值给 instance,并调用 DontDestroyOnLoad 方法,以便在场景切换时不被销毁。如果 instance 不为 null,说明已经存在 MyPseudoSingleton 实例了,我们就销毁当前实例。
使用时,我们在每个场景中都创建一个 MyPseudoSingleton 的对象,这样就能在多个场景中共享同一个对象了。这样,我们就实现了一个伪单例。
阅读全文