상세 컨텐츠

본문 제목

유니티 ZXing을 이용한 QRcode 생성

프로그래밍/유니티

by 개발자입니다 2020. 7. 18. 18:01

본문

728x90
반응형

오늘은 유니티 내에서 QR코드를 생성하는 방법에 대해서 알아보았다.

QR코드를 생성하기위해서는 먼저 zxing.dll 파일을 인포트 하여하 하는데, 그 방법은 이전 포스팅에서 확인 할 수 있으며 dll 파일을 첨부하였습니다.




zxing.unity.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가 생성 된 것을 볼 수 있을 것 이다.

728x90
반응형

관련글 더보기

댓글 영역