Cómo hacer que Texture2D sea legible a través de un script
Quiero que el usuario pueda decodificar la imagen QR cargada desde la galería, he encontrado un complemento para explorar y cargar la imagen como una texture2D, pero para decodificar ese código QR, Texture2D tiene que ser legible / escribible, y compruebo el complemento, para Android está explorando y cargando cosas con un jar y en la plataforma IOS está usando una biblioteca empaquetada, por lo que no tengo acceso al código de la biblioteca,
He buscado la respuesta, la mayor solución fue cambiar la configuración de importación de textura en el inspector de Unity, pero como esta es una textura cargada por código, no hay una configuración de inspector disponible para eso, así que mi pregunta es:
¿Hay alguna manera de hacer que esta textura cargada sea leída / escribible por código? sin tener que acceder al código lib?
Gracias
Aquí está el código que podría obtener la textura poreste complemento
void OnImageLoad(string imgPath, Texture2D tex, ImageAndVideoPicker.ImageOrientation imgOrientation)
{
Debug.Log("Image Location : " + imgPath);
Debug.Log("Image Loaded : " + imgPath);
texture = tex;
Texture2D readableText = new Texture2D(tex.width, tex.height);
readableText.LoadImage(tex.GetRawTextureData());
string url = QRCodeDecodeController.DecodeByStaticPic(readableText);
StartCoroutine(GetSceneAndLoadLevel(url));
}
Como puedes ver, he intentadoesta respuesta Pero no tuve suerte.
Y aquí está el error que mostró Android:
06-23 21:47:32.853: I/Unity(10557): (Filename: D Line: 0)
06-23 21:47:33.784: E/Unity(10557): Texture needs to be marked as Read/Write to be able to GetRawTextureData in player
06-23 21:47:33.784: E/Unity(10557): UnityEngine.Texture2D:GetRawTextureData()
06-23 21:47:33.784: E/Unity(10557): TestQR:OnImageLoad(String, Texture2D, ImageOrientation) (at D:\Unity Projects\nnkp\Assets\Scripts\QR\TestQR.cs:123)
06-23 21:47:33.784: E/Unity(10557): <LoadImage>c__Iterator0:MoveNext()
06-23 21:47:33.784: E/Unity(10557): UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
06-23 21:47:33.784: E/Unity(10557): [./artifacts/generated/common/runtime/TextureBindings.gen.cpp line 512]
Nota:
La fuenteTexture2D
proviene de un complemento, no puedo configurarlo en lectura / escritura habilitado desde el editor o usar el editorTextureImporter.isReadable
variable.