Я пытаюсь сгенерировать QR-код, используя ZXing.Net, и сначала у меня возникла проблема, когда .Save()
не работает из-за ошибки CS1061. Итак, я поцарапал эту идею, затем попытался сохранить .Write()
как изображение, а затем отобразить его в единстве, но Unity возвращает ошибку:
Cannot implicitly convert type 'UnityEngine.Color32[]' to 'UnityEngine.Sprite'
Я попытался использовать ответ из здесь , где они использовали Sprite.Create()
в качестве решения, но преобразовали Texture2D вместо Color32 [], но я не смог подтвердить, работает ли код для меня, так как код возвращает ошибку, которая:
The type or namespace name 'Image' could not be found
Как я уже сказал, я не смог выяснить, действительно ли работает код или нет. Я не знаю, что вызвало ошибку namespace
, поскольку используемый мной скрипт находится под пользовательским интерфейсом изображения.
Вот коды, которые я использую:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZXing;
using ZXing.QrCode;
using System.Drawing;
public class SampleScript : MonoBehaviour
{
public Texture2D myTexture;
Sprite mySprite;
Image myImage;
void Main()
{
var qrWriter = new BarcodeWriter();
qrWriter.Format = BarcodeFormat.QR_CODE;
this.gameObject.GetComponent<SpriteRenderer>().sprite = qrWriter.Write("text");
}
public void FooBar()
{
mySprite = Sprite.Create(myTexture, new Rect(0.0f, 0.0f, myTexture.width, myTexture.height), new Vector2(0.5f, 0.5f), 100.0f);
myImage.sprite = mySprite;
}
void Start()
{
FooBar();
Main();
}
Iдо сих пор не проверял этот код, поскольку ошибки должны быть устранены перед запуском.