untiy单例模式实现
时间: 2024-05-12 08:10:53 浏览: 139
在Unity中,单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供全局访问点。以下是Unity中实现单例模式的一种常见方式:
```csharp
public class Singleton : MonoBehaviour
{
private static Singleton instance;
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = FindObjectOfType<Singleton>();
if (instance == null)
{
GameObject singletonObject = new GameObject();
instance = singletonObject.AddComponent<Singleton>();
singletonObject.name = "Singleton";
DontDestroyOnLoad(singletonObject);
}
}
return instance;
}
}
private void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
// 其他成员方法和变量...
}
```
上述代码中,Singleton类继承自MonoBehaviour,通过使用静态属性Instance来获取单例实例。在Instance的get访问器中,首先检查instance是否为空,如果为空,则尝试通过FindObjectOfType方法查找已经存在的Singleton实例。如果找不到,则创建一个新的GameObject,并将Singleton组件添加到该GameObject上,并设置为不销毁(DontDestroyOnLoad)。如果instance不为空,则直接返回已存在的实例。
在Awake方法中,首先检查instance是否为空,如果为空,则将当前实例赋值给instance,并设置为不销毁。如果instance不为空,则销毁当前GameObject,以确保只有一个Singleton实例存在。
阅读全文
相关推荐










