Я пытаюсь как вызов самому себе прочитать файл pcx побайтно и преобразовать его в текстуру в Unity. Я прекрасно читаю данные, однако на самом деле применение их для создания правильной текстуры никогда не получается правильным, просто беспорядок пикселей, которые даже не заполняют весь объект. Что мне здесь не хватает? Вот мой код в том виде, в котором он есть.
Я пытаюсь как вызов самому себе прочитать файл pcx побайтно и преобразовать его в текстуру в Unity. Я прекрасно читаю данные, однако на самом деле применение их для создания правильной текстуры никогда не получается правильным, просто беспорядок пикселей, которые даже не заполняют весь объект. Что мне здесь не хватает? Вот мой код в том виде, в котором он есть. [code]public class Parser : MonoBehaviour [/code] { публичный мат MeshRenderer; [code]public int bitsInPlane; public int minX; public int minY; public int maxX; public int maxY; public int horzDPI; public int vertDPI; public int numColorPlanes; public int bytesPerColorPlane; public int horzSourceScreen; public int vertSourceScreen; public int startingPoint;
void Start() { Application.targetFrameRate = 24; List byteStream = new List(); byteStream = readImageData(); printBytes(byteStream); readBytesHeader(byteStream); drawTexture(byteStream); }
void Update() {
}
List readImageData() { string pcxPath = Application.dataPath + "/resources/bagit_icon.pcx"; List readByteStream = new List(); using (var stream = File.Open(pcxPath, FileMode.Open)) { using (var bReader = new BinaryReader(stream, System.Text.Encoding.UTF8, false)) { while (stream.Position != stream.Length) { readByteStream.Add(bReader.ReadByte());
} } }
return readByteStream; }
void printBytes(List bytes) { int offset = 0; foreach (var b in bytes) { Debug.Log(offset.ToString("X4") + " [" + offset + "]: " + b); offset++; } }