ReferencePoolComponent.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using GameFramework;
  8. using UnityEngine;
  9. namespace UnityGameFramework.Runtime
  10. {
  11. /// <summary>
  12. /// 基础组件。
  13. /// </summary>
  14. [DisallowMultipleComponent]
  15. [AddComponentMenu("Game Framework/ReferencePool")]
  16. public sealed class ReferencePoolComponent : GameFrameworkComponent
  17. {
  18. [SerializeField]
  19. private ReferenceStrictCheckType m_EnableStrictCheck = ReferenceStrictCheckType.AlwaysEnable;
  20. /// <summary>
  21. /// 获取或设置是否开启强制检查。
  22. /// </summary>
  23. public bool EnableStrictCheck
  24. {
  25. get
  26. {
  27. return ReferencePool.EnableStrictCheck;
  28. }
  29. set
  30. {
  31. ReferencePool.EnableStrictCheck = value;
  32. if (value)
  33. {
  34. Log.Info("Strict checking is enabled for the Reference Pool. It will drastically affect the performance.");
  35. }
  36. }
  37. }
  38. /// <summary>
  39. /// 游戏框架组件初始化。
  40. /// </summary>
  41. protected override void Awake()
  42. {
  43. base.Awake();
  44. }
  45. private void Start()
  46. {
  47. switch (m_EnableStrictCheck)
  48. {
  49. case ReferenceStrictCheckType.AlwaysEnable:
  50. EnableStrictCheck = true;
  51. break;
  52. case ReferenceStrictCheckType.OnlyEnableWhenDevelopment:
  53. EnableStrictCheck = Debug.isDebugBuild;
  54. break;
  55. case ReferenceStrictCheckType.OnlyEnableInEditor:
  56. EnableStrictCheck = Application.isEditor;
  57. break;
  58. default:
  59. EnableStrictCheck = false;
  60. break;
  61. }
  62. }
  63. }
  64. }