public void Update(uint elapsed) { for (int i = 0; i < mAllList.Count; ++i) { PopTipNode _node = mAllList[i] as PopTipNode; _node.Update(elapsed); } }
private void SortCaches() { float y = mOffsetY + mSrcPos.y - (float)Screen.height / 3.0f; float offset = 40.0f; for (int i = mCacheList.Count - 1; i >= 0; --i) { PopTipNode node = mCacheList[i] as PopTipNode; node.SetPos(new Vector2(mSrcPos.x, y)); y += offset; } }
public void AddNewTip(string txt, float offsetY = 0.0f) { if (string.IsNullOrEmpty(txt)) { return; } PopTipNode node = null; if (mCacheQueue.Count > 0) { node = mCacheQueue.Dequeue() as PopTipNode; } else { //等待新机制修改 GameObject clone = WindowManager.Instance.CloneCommonUI("PopTipUI"); GameObject.DontDestroyOnLoad(clone); WindowManager.Instance.SetDepth(clone, 1000, true); node = new PopTipNode(clone); mAllList.Add(node); } if (mCacheList.Count >= MAX_CACHE_SIZE) { PopTipNode lastNode = mCacheList[0] as PopTipNode; if (lastNode != null && lastNode.mUsed) { lastNode.Moved(); } } node.Start(txt); mCacheList.Add(node); // if( mLastPopTip != null && mLastPopTip.mUsed ) // { // mLastPopTip.Moved(); // } // node.SetPos(new Vector2(mSrcPos.x, offsetY + mSrcPos.y - (float)Screen.height / 4.0f)); // node.Start(txt); // mLastPopTip = node; SortCaches(); }
public void FreeUI(PopTipNode node) { mCacheQueue.Enqueue(node); }
public void OnMoved(PopTipNode node) { mCacheList.Remove(node); SortCaches(); }