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> { } } }