Пример #1
0
        IEnumerator PlayFun()
        {
            WaitForSeconds waifTime = new WaitForSeconds(0.3f);

            while (mGroups.Count != 0 || mParmas.Count > 0)
            {
                while (mParmas.Count > 0)
                {
                    var tips = mParmas.Dequeue();
                    mGroups.Add(1);
                    var item = mGroups.Last;
                    var text = item.GetFObject <Text>("S_Text");
                    text.text = tips.Context;
                    var back = item.GetFObject <RectTransform>("S_Back");
                    back.sizeDelta = new Vector2(580, text.preferredHeight * 1.5f + (text.preferredHeight < 30 ? 15 : 0));
                    Color startColor = Color.white;
                    startColor.a = 0;
                    back.GetComponent <MaskableGraphic>().FOFade(0, 1).SetDuration(1.0f).SetTag(TweenTag.Tag_Child).SetEaseMode(FEaseMode.PM_EaseOutQuart).Reset();
                    back.transform.localPosition = mStartPos;
                    back.FOMove(mStartPos + new Vector3(0, 150, 0)).SetDuration(1.5f).SetOnComplete(TipsEnd).SetEaseMode(FEaseMode.PM_EaseOutQuart);
                    yield return(waifTime);
                }
                yield return(waifTime);
            }
            CloseMySelf();
        }
Пример #2
0
        private void mAsyncChange(bool create)
        {
            if (!create && mIndexPacge == 0)
            {
                return;
            }

            if (create)
            {
                List <CircleData> end = mBuffs[mIndexs[mIndexs.Count - 1]];
                var newDataList       = new List <CircleData>();
                mBuffs[mIndexs.Count] = newDataList;
                mIndexs.Add(mIndexs.Count);

                for (int i = 0; i < end.Count; i++)
                {
                    var cd = end[i];

                    CircleData newCD     = null;
                    int        realIndex = GetIndex(mIndexPacge, i, true);
                    mGroupTransform.Add(1);
                    if (mTempObject.Count > realIndex)
                    {
                        newCD = mTempObject[realIndex];
                    }
                    else
                    {
                        //GameObject clone = SceneManager.CloneObject(cd.go);

                        GameObject clone = mGroupTransform.Last.gameObject;
                        clone.transform.position = cd.go.transform.position + mWorldSzie;
                        newCD    = new CircleData();
                        newCD.go = clone;
                        mTempObject.Add(newCD);
                    }

                    newDataList.Add(newCD);

                    if (SentEvent(newCD, realIndex))
                    {
                        newCD.go.SetActive(true);
                    }
                    else
                    {
                        newCD.go.SetActive(false);
                    }
                }
                mIndexs[0]++;
                mIndexPacge += 1;
            }
        }
Пример #3
0
        private void UpdateAsy(float floatIndex)
        {
            int desIndex = (int)(floatIndex - 0.5f) + m_CacheLine;

            if (desIndex > m_LastIndex)
            {
                desIndex = Mathf.Clamp(desIndex, 0, m_MaxLine);
                int count = Mathf.Clamp(m_LastIndex, 0, m_MaxLine);
                int cid   = 0;
                for (int page = count; page < desIndex + 1; page++)
                {
                    for (int n = 0; n < m_GroupNum; n++)
                    {
                        cid = page * m_GroupNum + n;
                        if (m_MaxNum > cid)
                        {
                            ScrollItem com = null;
                            if (cid < mItems.Count)
                            {
                                com = mItems[cid];
                            }
                            else
                            {
                                mGroups.Add(1);
                                com = new ScrollItem(mGroups.Last.gameObject);
                                mItems.Add(com);
                            }
                            m_GLayPosition.HandTool(cid, com.gameObject.transform);
                            com.SetIndexAndGroup(cid, page);
                            UpdateEvent(com);
                        }
                    }
                }
                m_LastIndex = desIndex;
            }
        }