Pro_Unit

Untitled

Feb 26th, 2020
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.92 KB | None | 0 0
  1. public interface IRequirement
  2. {
  3.     bool IsSatisfied { get; }
  4. }
  5. public interface IRequirementView
  6. {
  7.     void Init(IRequirement requirement);
  8.     bool IsMyRequriment(IRequirement requirement);
  9. }
  10.     [System.Serializable]
  11.     public class RequrimentViewFactory
  12.     {
  13.         [SerializeField]
  14.         private RequrimenViewPrefabProvider[] _providers;
  15.         public GameObject GetPrefab(IRequirement requirement)
  16.         {
  17.             foreach (var provider in _providers)
  18.                 if (provider.View.IsMyRequriment(requirement))
  19.                     return provider.Prefab;
  20.                    
  21.             return null;
  22.         }
  23.         [System.Serializable]
  24.         class RequrimenViewPrefabProvider
  25.         {
  26.             [SerializeField] private GameObject _prefab;
  27.             public IRequirementView View => _prefab.GetComponent<IRequirementView>();
  28.             public GameObject Prefab => _prefab;
  29.         }
  30.     }
Add Comment
Please, Sign In to add comment