とりあえず走り書き程度で書くので意味不明だと思います。またウソ情報の可能性もあります。
テクスチャデータ
sharedassets4_00678.tex ~ sharedassets4_00693.tex
座標データ
-2 のファイル sharedassets4_00001.-2 ~ sharedassets4_00016.-2
本題
座標データファイルの解析
sharedassets4_00001.-2
[0x10]: 0x2 は sharedassets0 を表します。
[0x14]: 0x638(1592) sharedassets0 の 1592 は AgeFont.script
AgeFont.script の実態は Assembly-CSharp-firstpass.dll にありますこれをデコンパイルすると
public class AgeFont : ScriptableObject
{
[Serializable]
public class Character : IComparable<AgeFont.Character>
{
public int Charcode;
public Vector2 Dimension;
public float Advance;
public Vector2 Offset;
public Rect TextureCoordinates;
public Rect RuntimeTextureCoordinates;
public int[] KerningEncodedData;
}
[SerializeField]
private AgeFont.Character[] characters;
[SerializeField]
private string characterSet;
[SerializeField]
private Font font;
[SerializeField]
private string faceStyle = string.Empty;
[SerializeField]
private int fontSize;
[SerializeField]
private bool usePixelMetrics;
[SerializeField]
private Material material;
[SerializeField]
private AgeFont.SpecialCharacter[] specialCharacters;
[SerializeField]
private AgeFont highdefAlternate;
[SerializeField]
private float lineHeight;
[SerializeField]
private float descender;
[SerializeField]
private float ascender;
[SerializeField]
private bool outline;
[SerializeField]
private Color outlineColor = Color.white;
[SerializeField]
private int outlineGradient = 1;
[SerializeField]
private bool distanceField;
[SerializeField]
private int distanceFieldSize;
[SerializeField]
private bool incorporateToAtlas;
[SerializeField]
private bool onlyAlphaChannel;
[SerializeField]
private AgeFont.KerningMode kerningUsage;
[SerializeField]
private AgeFont.KerningPair[] kerningPairs;
[SerializeField]
private AgeFont.AdditionalCharacterSet[] additionalCharacterSets;
}
こんな感じになります。
この AgeFont クラス(ひな形)のオブジェクト(実態)が上記の sharedassets4_00001.-2 (MonoBehaviour)になります。つまりプロパティの各値は Behaviour の方に格納されています。
では上記の画像より
[0x28]: 0x0 sharedassets4(同じファイル)
[0x2C]: 0x6 AtlasMaterial.mat
ここから AgeFont と関連します。
[0x34]: 0x9 characters の個数
Character
[0x38]: Charcode = 0x39("9")
Dimension = new Vector([0x3C]: 0x41300000(11.0f), [0x40]: 0x41600000(14.0f))
[0x44]: Advance = 0x41400000(12.0f)
Offset = new Vector([0x48]: 0x3F800000(1.0f), [0x4C]: 0xC1600000(-14.0f))
TextureCoordinates = new Rect([0x50]: 0.78125, [0x54]: 0.0, [0x58]: 0.171875, [0x5C]: 0.4375)
RuntimeTextureCoordinates = new Rect([0x60]: 0.0, [0x64]: 0.0, [0x68]: 0.0, [0x6C]: 0.0)
[0x70]: KerningEncodedData = null
個数分
[0x254]: String(characterSet) length
[0x258]: characterSet = "012345679"
[0x261-0x263]: padding
[0x264]: 0x0 sharedassets4(同じファイル)
[0x268]: font = 0x2DC(732) SourceSansPro-Black.ttf
[0x270]: faceStyle = 0x0 string.Empty
[0x274]: fontSize = 0x16(22)
[0x278]: usePixelMetrics = false
[0x27C]: 0x0 sharedassets4(同じファイル)
[0x280]: 0x17(23) material = AmplitudeGuiImage_00008.mat
[0x288]: 0x0 specialCharacters = null
[0x28C]: 0x0 sharedassets4(同じファイル)
[0x290]: 0x0 highdefAlternate = null
[0x298]: lineHeight = 31.0f
[0x29C]: descender = 9.0f
[0x2A0]: ascender = 22.0f
[0x2A4]: outline = false
[0x2A8]: outlineColor.a = 1.0f
[0x2AC]: outlineColor.b = 1.0f
[0x2B0]: outlineColor.g = 1.0f
[0x2B4]: outlineColor.r = 1.0f
[0x2B8]: outlineGradient = 1
[0x2BC]: distanceField = false
[0x2C0]: distanceFieldSize = 0
[0x2C4]: incorporateToAtlas = true
[0x2C8]: onlyAlphaChannel = false
[0x2CC]: kerningUsage = disabled
[0x2D0]: kerningPairs = null
[0x2D4]: additionalCharacterSets = null
ここまで
長いですがこれでも一番短いやつです…
コメント