using System.Collections;
using UnityEngine;

namespace QFramework.Example
{
	public class ReplaceableMonoSingletonExample : MonoBehaviour
	{
		// Use this for initialization
		IEnumerator Start()
		{
			// 创建一个单例
			var instance = GameManager.Instance;

			// 强制创建一个实例
			new GameObject().AddComponent<GameManager>();

			// 等一帧,等待第二个 GameManager 把自己删除
			yield return new WaitForEndOfFrame();
			
			// 结果为 1 
			Debug.Log(FindObjectsOfType<GameManager>().Length);
			
			// 最先创建的实例已经被删除
			Debug.Log(instance != FindObjectOfType<GameManager>());
		}


		public class GameManager : ReplaceableMonoSingleton<GameManager>
		{

		}
	}
}