public class MonoSingleton<T> : MonoBehaviour where T:MonoBehaviour
{
private static T _single;
public static T Single
{
get
{
if (_single == null)
{
_single = FindObjectOfType<T>();
if (_single==null)
{
Debug.LogError("场景中未找到类的对象,类名为:"+typeof(T).Name);
return null;
}
return _single;
}
return _single;
}
}
private void Awake()
{
if (_single==null)
{
//如果为空 则说明第一次生成 ,,保留 不销毁
DontDestroyOnLoad(gameObject);
}
else
{
//否则已存在,销毁当前物体
Destroy(gameObject);
}
}
}