Ich möchte den Benutzer in die Lage versetzen, das aus der Galerie geladene QR-Bild zu entschlüsseln. Ich habe ein Plugin gefunden, um das Bild als texture2D zu laden und zu entschlüsseln, aber den Text zu entschlüsseln muss lesbar/schreibbar sein, und ich habe das Plugin überprüft, für Android macht es das Erforschen und Laden von Sachen mit einem Jar und in der IOS-Plattform benutzt es eine gepackte Bibliothek, also habe ich keinen Zugriff auf den Code der lib,Wie man Texture2D über Skript lesbar macht
Ich habe nach der Antwort gesucht, die beste Lösung war, die importierende Einstellung der Textur im Unity-Inspektor zu ändern, aber da dies eine Textur ist, die durch Code geladen wird, gibt es keine Inspector-Einstellung dafür. Also lautet meine Frage:
I Gibt es eine Möglichkeit, diese geladene Textur durch Code les- und schreibbar zu machen? ohne auf den lib-Code zugreifen zu müssen?
Dank
Hier ist der Code, der die Textur von this 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));
}
Wie Sie zu sehen bekommen konnte, ich habe this answer versucht, bekam aber kein Glück.
Und hier ist der Fehler, der durch Android zeigte:
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]
Hinweis:
Die Quelle Texture2D
aus einem Plugin kommt, ich kann es nicht einstellen/Lesen von Aktiviert schreiben der Editor oder verwenden Sie die TextureImporter.isReadable
Variable des Editors.
Woher bekommen Sie den Lesefehler? Veröffentlichen Sie die Codezeile. – Programmer
@Programmer, schön, dich wieder zu sehen, Habe gerade bearbeitet, um das Protokoll zu posten – armnotstrong
Lies deine Frage noch einmal und entschied, das alte zu löschen. Ich habe dort eine wichtige Zeile verpasst, die die von Ihnen verwendete 'Texture2D.LoadImage'-Funktion ist. Lass mich wissen, ob alles in Ordnung ist. – Programmer