public (IView, WidgetViewReference) LoadViewPrefab(WidgetViewReference viewReference) { foreach (var loader in _loaders) { var(view, reference) = loader.LoadViewPrefab(viewReference); if (view != null) { return(view, reference); } } return(null, default);
protected override IView ResolveView(WidgetViewReference viewReference) { var(prefab, viewRef) = ViewContext.Loader.LoadViewPrefab(viewReference); var view = GameObjectPool .Instantiate(prefab.gameObject, _parentSelector.Invoke(), _worldPositionStays) .GetComponent <IView>(); view.gameObject.name = prefab.gameObject.name; view.rectTransform.anchoredPosition = Vector2.zero; view.ViewReference = viewRef; return(view); }
private IView ResolveOrReuseView(WidgetViewReference viewReference) { for (var i = 0; i < _reuse.Count; i++) { var item = _reuse[i]; if (!item.View.ViewReference.Equals(viewReference)) { continue; } _reuse.RemoveAt(i); var view = item.View; if (!view.gameObject.activeSelf) { view.gameObject.SetActive(true); } return(view); } return(ResolveView(viewReference)); }
public (IView, WidgetViewReference) LoadViewPrefab(WidgetViewReference viewReference) { if (viewReference.Type != WidgetViewReferenceType.Resource || !viewReference.Path.StartsWith("$$_")) { return(null, default);
public (IView, WidgetViewReference) LoadViewPrefab(WidgetViewReference viewReference) { if (viewReference.Type != WidgetViewReferenceType.Resource) { return(null, default);
protected abstract IView ResolveView(WidgetViewReference state);
public CounterState(WidgetViewReference view) { View = view; }