using UnityEngine; namespace AlicizaX { /// /// 内存强制检查类型。 /// public enum MemoryStrictCheckType : byte { /// /// 总是启用。 /// AlwaysEnable = 0, /// /// 仅在开发模式时启用。 /// OnlyEnableWhenDevelopment, /// /// 仅在编辑器中启用。 /// OnlyEnableInEditor, /// /// 总是禁用。 /// AlwaysDisable, } /// /// 内存池模块。 /// [DisallowMultipleComponent] public sealed class MemoryPoolSetting : MonoBehaviour { [SerializeField] private MemoryStrictCheckType m_EnableStrictCheck = MemoryStrictCheckType.OnlyEnableWhenDevelopment; /// /// 获取或设置是否开启强制检查。 /// public bool EnableStrictCheck { get => MemoryPool.EnableStrictCheck; set { MemoryPool.EnableStrictCheck = value; if (value) { Log.Info("Strict checking is enabled for the Memory Pool. It will drastically affect the performance."); } } } private void Start() { switch (m_EnableStrictCheck) { case MemoryStrictCheckType.AlwaysEnable: EnableStrictCheck = true; break; case MemoryStrictCheckType.OnlyEnableWhenDevelopment: EnableStrictCheck = Debug.isDebugBuild; break; case MemoryStrictCheckType.OnlyEnableInEditor: EnableStrictCheck = Application.isEditor; break; default: EnableStrictCheck = false; break; } } } }