Пример #1
0
        private void Enter(List <int> Ids)//生成物体
        {
            for (int i = 0; i < Ids.Count; i++)
            {
                if (BoxCount < 1)
                {
                    return;                                                  //数量不能为0
                }
                Num = (Loop) ? SS_Mathf.Int_Loop(Ids[i], BoxCount) : Ids[i]; //换算成整数循环

                if (!(Loop || SS_Mathf.If_IntervalValue(Num, 0, BoxCount - 1)))
                {
                    continue;                                                            //跳过这次循环
                }
                GameObject BoxObject = objectPool.Get_Object();
                // print("工作对象池:" + objectPool.ObjectPool_Work.Count + " 闲置对象池:" + objectPool.ObjectPool_Idle.Count);


                IdPool.Add(Ids[i], BoxObject);

                if (BoxObject != null)
                {
                    Vector2 List2D = SS_Mathf.List1D_To_List2D(Ids[i], (int)groupList.y); //下标换算

                    Vector2 BoxPosition;                                                  //根据二维下标计算位置
                    BoxPosition.x = ((isVertical) ? List2D.y : List2D.x) * GroupBox.x + GroupGap.x + BoxSize_Half.x;
                    BoxPosition.y = ((isVertical) ? List2D.x : List2D.y) * -GroupBox.y - GroupGap.y - BoxSize_Half.y;


                    ((RectTransform)BoxObject.transform).sizeDelta        = new Vector2(BoxSize.x, BoxSize.y); //设置内容盒子高宽
                    ((RectTransform)BoxObject.transform).anchorMin        = new Vector2(0, 1);                 //设置锚点为中心点
                    ((RectTransform)BoxObject.transform).anchorMax        = new Vector2(0, 1);
                    ((RectTransform)BoxObject.transform).anchoredPosition = BoxPosition;                       //位置放置
                    BoxsId.Add(Ids[i]);                                                                        //Id存入列表
                }
            }
        }