protected override void OnDestroy() { base.OnDestroy(); if (_Render != null) { _Render.Release(this); } _Render = null; EmojiTools.RemoveUnityMemory(this); }
private void OnDestroy() { #if UNITY_EDITOR if (_lostAssets != null) { for (int i = 0; i < _lostAssets.Count; ++i) { string asset = _lostAssets[i]; Debug.LogError(string.Format("not prepred atlasAsset named :{0}", asset)); } } #endif if (_render != null) { _render.Dispose(); } _render = null; EmojiTools.RemoveUnityMemory(this); }
public void Draw(IEmojiRender rd) { _Render = rd; }
void InitRender() { if (_render == null || _render.renderType != RenderType) { if (RenderType == EmojiRenderType.RenderGroup) { EmojiRenderGroup newRender = new EmojiRenderGroup(this); newRender.Speed = AnimationSpeed; if (_render != null) { List <InlineText> list = _render.GetAllRenders(); if (list != null) { for (int i = 0; i < list.Count; ++i) { InlineText text = list[i]; if (text != null) { newRender.TryRendering(text); } } } List <SpriteAsset> atlaslist = _render.GetAllRenderAtlas(); if (atlaslist != null) { for (int i = 0; i < atlaslist.Count; ++i) { SpriteAsset atlas = atlaslist[i]; if (atlas != null) { newRender.PrepareAtlas(atlas); } } } _render.Dispose(); } _render = newRender; } else if (RenderType == EmojiRenderType.RenderUnit) { UnitRender newRender = new UnitRender(this); newRender.Speed = AnimationSpeed; if (_render != null) { List <InlineText> list = _render.GetAllRenders(); if (list != null) { for (int i = 0; i < list.Count; ++i) { InlineText text = list[i]; if (text != null) { newRender.TryRendering(text); } } } List <SpriteAsset> atlaslist = _render.GetAllRenderAtlas(); if (atlaslist != null) { for (int i = 0; i < atlaslist.Count; ++i) { SpriteAsset atlas = atlaslist[i]; if (atlas != null) { newRender.PrepareAtlas(atlas); } } } _render.Dispose(); } _render = newRender; } else { Debug.LogError("not support yet"); this.enabled = false; } } }