//创建一个监听对象存在与否的监听器,如果对象不存在则不会受到回调事件 public static MonoObjectLifeHandle Follow(MonoBehaviour obj, bool ignoreActive = false) { var handle = new MonoObjectLifeHandle(); if (obj == null) { return(null); } //初始化变量 handle.ignoreActive = ignoreActive; handle.FollowedObj = obj; handle.destory = false; handle.active = obj.gameObject.activeSelf && obj.enabled; BaseMonoManagerForUnitySingleton.Instance.BaseUpdate.AddListener(handle.BaseUpdateFunc); BaseMonoManagerForUnitySingleton.Instance.BaseFixedUpdate.AddListener(handle.BaseFixedUpdateFunc); return(handle); }
/// <summary> /// 根据普通对象的生命周期的跟随回调管理器 /// </summary> /// <param name="obj"></param> public static MonoObjectLifeHandle CreateAFollowedObjectBaseMono(MonoBehaviour obj, bool ignoreActive = false) { return(MonoObjectLifeHandle.Follow(obj, ignoreActive)); }