Пример #1
0
    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);
        }
    }
Пример #2
0
 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);
         }
     }
 }