/// <summary> /// Add a dark shadowy outline around the sprite, giving it some visual depth. /// </summary> void AddOutline(UISpriteData sprite) { List <UIAtlasMaker.SpriteEntry> sprites = new List <UIAtlasMaker.SpriteEntry>(); UIAtlasMaker.ExtractSprites(mAtlas, sprites); UIAtlasMaker.SpriteEntry se = null; for (int i = 0; i < sprites.Count; ++i) { if (sprites[i].name == sprite.name) { se = sprites[i]; break; } } if (se != null) { int w1 = se.tex.width; int h1 = se.tex.height; int w2 = w1 + 2; int h2 = h1 + 2; Color32[] c2 = NGUIEditorTools.AddBorder(se.tex.GetPixels32(), w1, h1); NGUIEditorTools.AddDepth(c2, w2, h2, NGUISettings.backgroundColor); if (se.temporaryTexture) { DestroyImmediate(se.tex); } if ((se.borderLeft | se.borderRight | se.borderBottom | se.borderTop) != 0) { ++se.borderLeft; ++se.borderRight; ++se.borderTop; ++se.borderBottom; } se.tex = new Texture2D(w2, h2); se.tex.name = sprite.name; se.tex.SetPixels32(c2); se.tex.Apply(); se.temporaryTexture = true; UIAtlasMaker.UpdateAtlas(mAtlas, sprites); DestroyImmediate(se.tex); se.tex = null; } }
/// <summary> /// Add a transparent border around the sprite. /// </summary> void AddTransparentBorder(UISpriteData sprite) { List <UIAtlasMaker.SpriteEntry> sprites = new List <UIAtlasMaker.SpriteEntry>(); UIAtlasMaker.ExtractSprites(mAtlas, sprites); UIAtlasMaker.SpriteEntry se = null; for (int i = 0; i < sprites.Count; ++i) { if (sprites[i].name == sprite.name) { se = sprites[i]; break; } } if (se != null) { int w1 = se.tex.width; int h1 = se.tex.height; int w2 = w1 + 2; int h2 = h1 + 2; var c2 = NGUIEditorTools.AddBorder(se.tex.GetPixels32(), w1, h1); if (se.temporaryTexture) { DestroyImmediate(se.tex); } ++se.borderLeft; ++se.borderRight; ++se.borderTop; ++se.borderBottom; se.tex = new Texture2D(w2, h2); se.tex.name = sprite.name; se.tex.SetPixels32(c2); se.tex.Apply(); se.temporaryTexture = true; var before = NGUISettings.atlasTrimming; NGUISettings.atlasTrimming = false; UIAtlasMaker.UpdateAtlas(mAtlas, sprites); NGUISettings.atlasTrimming = before; DestroyImmediate(se.tex); se.tex = null; } }