예제 #1
0
        private void AddOperateMeta(LegoUIType elementType,
                                    RectTransform rectTransform)
        {
            var rectMeta = LegoRectTransformMeta.Create(rectTransform);

            uiMeta.AddOperateMeta(elementType, rectMeta, rectTransform);
        }
예제 #2
0
        /// <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();
     }
 }
예제 #4
0
        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);
        }
예제 #6
0
 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)
 {
 }