TargetManager.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // MIT License
  2. // https://gitlab.com/ilnprj
  3. // Copyright (c) 2020 ilnprj
  4. using System;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. namespace RadarComponents
  8. {
  9. /// <summary>
  10. /// Generalization ITargetManager
  11. /// </summary>
  12. public class TargetManager : MonoBehaviour, ITargetManager
  13. {
  14. public List<ITarget> Targets { get; private set; } = new List<ITarget>();
  15. public event Action<ITarget> onAddTarget = delegate { };
  16. public event Action<ITarget> onRemoveTarget = delegate { };
  17. public int CountTargets { get; private set; } = 0;
  18. /// <summary>
  19. /// Add Target
  20. /// </summary>
  21. public void AddTarget(ITarget target)
  22. {
  23. Targets.Add(target);
  24. onAddTarget(target);
  25. CountTargets++;
  26. }
  27. /// <summary>
  28. /// Remove Target
  29. /// </summary>
  30. public void RemoveTarget(ITarget target)
  31. {
  32. Targets.Remove(target);
  33. onRemoveTarget(target);
  34. CountTargets--;
  35. }
  36. }
  37. }