private void AddOperateMeta(LegoUIType elementType, RectTransform rectTransform) { var rectMeta = LegoRectTransformMeta.Create(rectTransform); uiMeta.AddOperateMeta(elementType, rectMeta, rectTransform); }
/// <summary> /// 帧循环构建 /// </summary> public void BuildAtUpdate() { BuildedFrameCount = 0; for (var i = 0; i < m_BuildSpeed; i++) { if (!buildAble) { return; } if (CheckIsCompleted()) { return; } // try // { if (buildingControl == null) { if (taskCurrentElementIndex == TaskMeta.ElementIndex) { taskCurrentElementIndex++; buildingType = TaskMeta.NextElement; buildingRectMeta = TaskMeta.NextRect; } else { TaskMeta.ElementIndex = taskCurrentElementIndex; TaskMeta.RectIndex = taskCurrentElementIndex; taskCurrentElementIndex++; buildingType = TaskMeta.NextElement; buildingRectMeta = TaskMeta.NextRect; } if (buildingType == LegoUIType.Component || buildingType == LegoUIType.Container) { PushTask(); } else { //获取控件,变形 GetNextControl(); ExecuteOneMetamorphose(); } } else { ExecuteOneMetamorphose(); } // } // catch (Exception ex) // { // buildAble = false; // Debug.LogError(ex.StackTrace); // throw new Exception($"在构建{buildingRectMeta.Name}时发生异常,异常信息为{ex.Message}!"); // } } }
private void UnloadNext() { unloadingType = taskMeta.NextElement; if (unloadingType == LegoUIType.Component || unloadingType == LegoUIType.Container) { PushSonTask(); } else { RestoreControl(); } }
public void AddOperateMeta(LegoUIType elementType, LegoRectTransformMeta rectMeta, Transform transform) { ElementTypes.Add(elementType); RectMetas.Add(rectMeta); if (!AddMetaActions.ContainsKey(elementType)) { Debug.LogError($"目标UI类型{elementType}当前没有对应的元数据构建委托!"); } var action = AddMetaActions[elementType]; action(transform); }
private int GetTargetIndex(LegoUIType uiType) { var index = ++Indexs[uiType]; return(index); }
private void AddOperateMeta(LegoUIType elementType, Transform transform) { AddOperateMeta(elementType, transform.RectTransform()); }
private void BingdngAtElementType(LegoUIType elementType, ILegoUI ui, string id, IYuLegoUIRxModel uiRxModel, LegoRectTransformMeta rectMeta) { switch (elementType) { case LegoUIType.Text: BindingText(ui, id, uiRxModel, rectMeta); break; case LegoUIType.Image: BindingImage(ui, id, uiRxModel, rectMeta); break; case LegoUIType.RawImage: BindingRawImage(ui, id, uiRxModel, rectMeta); break; case LegoUIType.Button: BindingButton(ui, id, uiRxModel, rectMeta); break; case LegoUIType.TButton: BindingTButton(ui, id, uiRxModel, rectMeta); break; case LegoUIType.InputField: BindingInputField(ui, id, uiRxModel, rectMeta); break; case LegoUIType.Slider: BindingSlider(ui, id, uiRxModel, rectMeta); break; case LegoUIType.Progressbar: BindingProgressbar(ui, id, uiRxModel, rectMeta); break; case LegoUIType.Toggle: BindingToggle(ui, id, uiRxModel, rectMeta); break; case LegoUIType.Tab: break; case LegoUIType.Dropdown: BindingDropdown(ui, id, uiRxModel, rectMeta); break; case LegoUIType.Rocker: break; case LegoUIType.Grid: break; case LegoUIType.ScrollView: break; case LegoUIType.None: break; case LegoUIType.InlineText: break; case LegoUIType.PlaneToggle: BindingPlaneToggle(ui, id, uiRxModel, rectMeta); break; case LegoUIType.Component: break; case LegoUIType.Container: break; case LegoUIType.View: break; default: throw new ArgumentOutOfRangeException(nameof(elementType), elementType, null); } }
private void TryUnBingdngAtElementType(LegoUIType elementType, ILegoUI ui, string id, IYuLegoUIRxModel uiRxModel) { }