public void BreakdownToAtlas(AgeAtlas atlas) { Texture2D texture2D = (Texture2D)this.Material.mainTexture; for (int i = 0; i < this.characters.Length; i++) { int x = Mathf.RoundToInt(this.characters[i].TextureCoordinates.x * (float)texture2D.width); int y = Mathf.RoundToInt(this.characters[i].TextureCoordinates.y * (float)texture2D.height); int num = Mathf.RoundToInt(this.characters[i].TextureCoordinates.width * (float)texture2D.width); int num2 = Mathf.RoundToInt(this.characters[i].TextureCoordinates.height * (float)texture2D.height); if (num <= 0) { num = 1; } if (num2 <= 0) { num2 = 1; } Texture2D texture2D2 = new Texture2D(num, num2, TextureFormat.ARGB32, false); texture2D2.SetPixels(texture2D.GetPixels(x, y, num, num2)); texture2D2.name = (base.name + this.characters[i].Charcode).ToUpper(); texture2D2.Apply(); atlas.AddTexture(texture2D2, base.name); } }
public void FinalizeForAtlas(AgeAtlas atlas) { if (this.IncorporateToAtlas) { this.RuntimeMaterial = atlas.AtlasMaterial; string text = string.Empty; for (int i = 0; i < this.characters.Length; i++) { text = (base.name + this.characters[i].Charcode).ToUpper(); Rect rect = atlas.TextureMap[atlas.TextureLookup[text]]; this.characters[i].RuntimeTextureCoordinates.x = rect.x; this.characters[i].RuntimeTextureCoordinates.y = rect.y; this.characters[i].RuntimeTextureCoordinates.width = rect.width; this.characters[i].RuntimeTextureCoordinates.height = rect.height; atlas.DeleteTexture(text); } } }