Beispiel #1
0
        protected override void OnSingleRecord(IRecycleData data)
        {
            var itemData = data as TrendData;

            if (_datas == null)
            {
                _datas = new RoadNodeTable(new List <TrendData>(), 6);
            }
            if (_branchDatas == null)
            {
                switch (Type)
                {
                case EnumTrendType.BigRoad:
                    _branchDatas = _datas;
                    break;

                default:
                    _branchDatas = new RoadNodeTable(_datas, Type, 6);
                    break;
                }
            }
            if (itemData != null)
            {
                if (!_datas.AddSingleItem(itemData))
                {
                    if (CacheData.Count > 0)
                    {
                        var cachelast = CacheData.Last() as RoadNode;
                        var getLast   = _datas.Nodes.Last();
                        if (cachelast != null && (cachelast.X == getLast.X && cachelast.Y == getLast.Y))
                        {
                            var lastView = CacheViews.Last();
                            CacheData[CacheData.Count - 1] = getLast;
                            lastView.UpdateView(getLast);
                        }
                    }
                }
                else
                {
                    switch (Type)
                    {
                    case EnumTrendType.BigRoad:
                        _branchDatas = _datas;
                        break;

                    default:
                        _branchDatas.AddSingleItem(_datas.Nodes.Last(), _datas);
                        break;
                    }
                    if (_branchDatas.Nodes.Count > 0)
                    {
                        var lastNode = _branchDatas.Nodes.Last();
                        AddChildToShow(lastNode);
                    }
                }
            }
            GetPridict();
        }
Beispiel #2
0
        /// <summary>
        /// 添加View
        /// </summary>
        /// <param name="singleData"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        private YxView AddView(IRecycleData singleData, string index)
        {
            CacheData.Add(singleData);
            var item = Pool.New();

            ShowParent.AddChildToParent(item.gameObject);
            item.Id = index;
            item.UpdateView(singleData);
            return(item);
        }
Beispiel #3
0
        /// <summary>
        /// 添加单独子对象
        /// </summary>
        protected virtual YxView AddChildToShow(IRecycleData singleData)
        {
            if (CacheViews == null)
            {
                CacheViews = new List <YxView>();
            }
            if (CacheData == null)
            {
                CacheData = new List <IRecycleData>();
            }
            var view  = AddView(singleData, CacheData.Count.ToString());
            var count = CacheData.Count;

            DatasExist = count != 0;
            CacheViews.Add(view);
            StartCoroutine(OnChildAdded.WaitExcuteCalls());
            return(view);
        }
Beispiel #4
0
 /// <summary>
 /// 单独的回放消息
 /// </summary>
 /// <param name="data"></param>
 protected virtual void OnSingleRecord(IRecycleData data)
 {
     AddChildToShow(data);
 }