private void PushEmojiToPool() { if (_showEmojiList != null) { for (int i = 0; i < _showEmojiList.Count; i++) { CacheEmoji cacheEmoji = _showEmojiList[i]; cacheEmoji.Used = false; if (!_emojiDict.ContainsKey(cacheEmoji.Key)) { _emojiDict.Add(cacheEmoji.Key, ListPool <CacheEmoji> .Get()); } List <CacheEmoji> list = _emojiDict[cacheEmoji.Key]; list.Add(cacheEmoji); } _showEmojiList.Clear(); } }
public void CreateEmoji(TagData tagData) { List <CacheEmoji> list = null; if (_emojiDict.ContainsKey(tagData.Id)) { list = _emojiDict[tagData.Id]; } CacheEmoji cacheEmoji = GetFromPool <CacheEmoji>(list, tagData); cacheEmoji.Key = tagData.Id; if (_showEmojiList == null) { _showEmojiList = ListPool <CacheEmoji> .Get(); } _showEmojiList.Add(cacheEmoji); cacheEmoji.RectTrans.sizeDelta = new Vector2(tagData.Width, tagData.Height); cacheEmoji.RectTrans.anchoredPosition3D = tagData.StartPosition; }