当使用DontDestroyOnLoad方法的时候需要销毁场景切换的时候新创建的物体,使用单例可以解决。避免重复创建。
Class UImanager:Monobehaviour
{
public static UImanager Instance;
private void Awake()
{
if (Instance != null&&Instance != this)
{
Destroy(gameObject);
return;
}
Instance = this;
DontDestroyOnLoad(gameObject);
}
}
tips:
不挂载的脚本单例的写法:
public class DataManager
{
private static DataManager instance = null;
public static DataManager Instance
{
get
{
if (instance == null)
{
instance = new DataManager();
}
return instance;
}
}
DataManager()
{
}
public string SayHello()
{
return "hello";
}
}
其他脚本调用:
Debug.Log(DataManager.Instance.SayHello());
其他写法:
public class UIManager : MonoBehaviour {
public static UIManager _instance = null;
public static UIManager GetInstance()
{
if (_instance == null)
{
_instance = new GameObject("_UIManager").AddComponent<UIManager>();
}
return _instance;
}
}