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