public static void FillPoolWithChildrenViews <TView, TData>(IViewPool <TView, TData> pool, Transform parent, PrefabRef <TView> prefabRef, TView prefab, PresentOptions options) where TView : ReusableView { if (parent == null) { return; } foreach (var obj in parent) { var view = ((Transform)obj).GetComponent <TView>(); if (view != null) { if (view.prefabRef != null && view.prefabRef == prefab) { pool.AddViewToUse((TView)view.prefabRef, view); } else if (options.Has(PresentOptions.UseChildWithSameTypeAsView) && view.GetType() == prefabRef.ExtractType()) { view.prefabRef = prefab; pool.AddViewToUse((TView)view.prefabRef, view); } else if (options.Has(PresentOptions.UseChildWithSameNameAsView) && view.name == prefabRef.ExtractName()) { view.prefabRef = prefab; pool.AddViewToUse((TView)view.prefabRef, view); } } } }
public static void FillPoolWithChildrenViews <TView, TData>(IViewPool <TView, TData> pool, Transform parent, Type viewType) where TView : ReusableView { foreach (var obj in parent) { var view = ((Transform)obj).GetComponent <TView>(); if (view != null && view.GetType() == viewType) { pool.AddViewToUse((TView)view.prefabRef, view); } } }
public void AddViewToUse(TView prefab, TView view) { viewPoolImplementation.AddViewToUse(prefab, view); }