Como tornar o Texture2D legível por script
Quero tornar o usuário capaz de decodificar a imagem QR carregada da galeria. Encontrei um plug-in para explorar e carregar a imagem como um texture2D, mas para decodificar esse código QR, o Texture2D deve ser legível / gravável, e verifiquei o plugin, para Android, ele está explorando e carregando coisas com um jar e, na plataforma IOS, está usando uma biblioteca empacotada, então não tenho acesso ao código da lib,
Procurei a resposta, a melhor solução foi alterar a configuração de importação de textura no inspetor do Unity, mas como essa é uma textura carregada pelo código, não há uma configuração de inspetor disponível para isso. Portanto, minha pergunta é:
Existe alguma maneira de tornar essa textura carregada lida / gravável por código? sem ter que acessar o código lib?
obrigado
Aqui está o código que poderia obter a texturaeste plugin
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 você pode ver, eu tenteiesta resposta Mas não tive sorte.
E aqui está o erro mostrado pelo 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:
A fonteTexture2D
é proveniente de um plug-in, não posso configurá-lo para Leitura / Gravação ativado no Editor ou usar as configurações do editor.TextureImporter.isReadable
variável.