private MainMenuChatItem Use() { if (mPool.Count > 0) { MainMenuChatItem item = mPool[mPool.Count - 1]; mPool.RemoveAt(mPool.Count - 1); item.mDMono.gameObject.SetActive(true); mActive.Enqueue(item); item.mDMono.transform.SetParent(mPreviewTableTransform); item.mDMono.transform.localPosition = Vector3.zero; item.mDMono.transform.localScale = Vector3.one; item.mDMono.transform.localEulerAngles = Vector3.zero; item.mDMono.transform.SetAsFirstSibling(); return(item); } else { var ilr = Object.Instantiate(mActive[mActive.Count - 1].mDMono); MainMenuChatItem item = ilr._ilrObject as MainMenuChatItem; mActive.Enqueue(item); item.mDMono.transform.SetParent(mPreviewTableTransform); item.mDMono.transform.localPosition = Vector3.zero; item.mDMono.transform.localScale = Vector3.one; item.mDMono.transform.localEulerAngles = Vector3.zero; item.mDMono.transform.SetAsFirstSibling(); item.SetItemData(null); return(item); } }
private void Recycle(MainMenuChatItem item) { item.SetItemData(null); item.mDMono.transform.SetAsLastSibling(); item.mDMono.gameObject.SetActive(false); mPool.Add(item); }
private void AddMessage(EB.Sparx.ChatMessage msg) { MainMenuChatItem item = Use(); ChatUIMessage uimsg = new ChatUIMessage(msg); var channel = ChatRule.STR2CHANNEL[msg.channelType]; uimsg.ChannelSpriteName = ChatRule.CHANNEL2ICON.ContainsKey(channel) ? ChatRule.CHANNEL2ICON[channel] : ""; uimsg.Channel = channel; item.SetItemData(uimsg); }