Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface IRequirement
- {
- bool IsSatisfied { get; }
- }
- public interface IRequirementView
- {
- void Init(IRequirement requirement);
- bool IsMyRequriment(IRequirement requirement);
- }
- [System.Serializable]
- public class RequrimentViewFactory
- {
- [SerializeField]
- private RequrimenViewPrefabProvider[] _providers;
- public GameObject GetPrefab(IRequirement requirement)
- {
- foreach (var provider in _providers)
- if (provider.View.IsMyRequriment(requirement))
- return provider.Prefab;
- return null;
- }
- [System.Serializable]
- class RequrimenViewPrefabProvider
- {
- [SerializeField] private GameObject _prefab;
- public IRequirementView View => _prefab.GetComponent<IRequirementView>();
- public GameObject Prefab => _prefab;
- }
- }
Add Comment
Please, Sign In to add comment