오늘은 유니티 내에서 QR코드를 생성하는 방법에 대해서 알아보았다.
QR코드를 생성하기위해서는 먼저 zxing.dll 파일을 인포트 하여하 하는데, 그 방법은 이전 포스팅에서 확인 할 수 있으며 dll 파일을 첨부하였습니다.
위의 순서를 마쳤다면 유니티 내에서 씬을 만들고, 빈 오브젝트에 새로운 스크립트를 작성해 컴포넌트한다.
오브젝트 이름은 qrcodeMake, 스크립트 이름은 QRcode Maker로 생성하였으며, 어떤 이름으로 생성하여도 상관은 없다.
생성된 오브젝트의 인스펙터 창
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZXing; //필수 임포트
using ZXing.QrCode; //필수 임포트
using System.IO; //필수 임포트
public class QRcodeMaker : MonoBehaviour
{
private static Color32[] Encode(string textForEncoding, int width, int height)
{
//인코딩 작업 //QRcode Make..
var writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,
Options = new QrCodeEncodingOptions
{
Height = height,
Width = width
}
};
return writer.Write(textForEncoding);
//QRcode는 적외선 센서를 통하여 인식을 하게 되는데, 인식을 하게 되면 해당 QRcode에 저장된 텍스트를 실행 시켜 그 내용을 확인 하는 것이다. 이에 따라 QR 코드를 만들 때에는 QRcode 안에 저장할 텍스트와 함께 생성시킨다.
}
public static Texture2D generateQR(string text)
{
//인코딩 작업을 위한 Encode 함수 호출
var encoded = new Texture2D(256, 256);
var color32 = Encode(text, encoded.width, encoded.height);
encoded.SetPixels32(color32);
encoded.Apply();
//인코드를 완료후 PNG 파일로 만들기 위한 File 시스템.
byte[] bytes = encoded.EncodeToPNG();
File.WriteAllBytes(Application.persistentDataPath + text + ".png", bytes);
//Application.persistentDataPath 에 파일을 저장하였으니 C:\Users\유저네임\AppData\LocalLow\의 유니티 컴퍼니 회사 이름에 저장 될 것이다.
return encoded;
}
void Start()
{
//10개의 qr코드를 만들기 위해서 for문을 이용해 씬이 시작되면 실행 되도록 하였다.
for (int i = 1; i <= 10; i++)
{
//generateQR 함수로 만들 이름을 가지고 실행
Texture2D myQR = generateQR("Unit_" + i);
}
}
}
위의 작업을 모두 마친 후 유니티 내에서 프로젝트를 실행 후 종료 시키고, 파일이 저장될 위치에 들어가보면 QRcode가 생성 된 것을 볼 수 있을 것 이다.
유니티 PlayerPrefs 를 이용한 간단한 데이터 저장 (0) | 2020.08.12 |
---|---|
유니티 ZXing을 이용한 QRcdoe 인식 (0) | 2020.07.25 |
유니티 error: The type or namespace name 'post processing' could not be found (0) | 2020.07.10 |
유니티 dll 파일 유니티 임포트 하기 (0) | 2020.07.07 |
유니티 구글 플레이 업로드 오류 apk 번들 만들기 (0) | 2020.07.01 |
댓글 영역