PoolBaseTargetView.cs 1004 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. namespace RadarComponents
  4. {
  5. /// <summary>
  6. /// A pool for target views that can be constantly turned on and off
  7. /// </summary>
  8. public class PoolBaseTargetView: MonoBehaviour
  9. {
  10. private List<BaseTargetView> poolTargetViews = new List<BaseTargetView>();
  11. public BaseTargetView GetNewView(BaseTargetView prefabView, Transform spawnRoot)
  12. {
  13. BaseTargetView view;
  14. if (poolTargetViews.Count <= 0)
  15. {
  16. view = Instantiate(prefabView, spawnRoot);
  17. }
  18. else
  19. {
  20. view = poolTargetViews[poolTargetViews.Count - 1];
  21. poolTargetViews.Remove(view);
  22. view.gameObject.SetActive(true);
  23. }
  24. return view;
  25. }
  26. public void SetToPool(BaseTargetView view)
  27. {
  28. view.gameObject.SetActive(false);
  29. poolTargetViews.Add(view);
  30. }
  31. }
  32. }