using AlicizaX; using UnityEngine; namespace AlicizaX.Runtime { /// /// 引用池组件。 /// [DisallowMultipleComponent] [AddComponentMenu("Game Framework/ReferencePool")] public sealed class ReferencePoolComponent : GameFrameworkComponent { [SerializeField] private ReferenceStrictCheckType m_EnableStrictCheck = ReferenceStrictCheckType.AlwaysEnable; /// /// 获取或设置是否开启强制检查。 /// public bool EnableStrictCheck { get { return ReferencePool.EnableStrictCheck; } set { ReferencePool.EnableStrictCheck = value; if (value) { Log.Info("Strict checking is enabled for the Reference Pool. It will drastically affect the performance."); } } } /// /// 游戏框架组件初始化。 /// protected override void Awake() { IsAutoRegister = false; base.Awake(); } private void Start() { switch (m_EnableStrictCheck) { case ReferenceStrictCheckType.AlwaysEnable: EnableStrictCheck = true; break; case ReferenceStrictCheckType.OnlyEnableWhenDevelopment: EnableStrictCheck = Debug.isDebugBuild; break; case ReferenceStrictCheckType.OnlyEnableInEditor: EnableStrictCheck = Application.isEditor; break; default: EnableStrictCheck = false; break; } } } }