본문 바로가기

유니티/에셋, 패키지

유니티 QR코드 동적생성 - ZXing

반응형

모바일이 아닌 기기에서 유니티로 만든 프로그램을 실행할 때, 모바일 기기와 연동을 위해 QR코드를 이용할 수 있다. 이때 사용할 QR코드가 한개면 그냥 이미지를 넣고 사용하면 되겠으나, 플레이어의 상태에 따라 미묘하게 QR코드가 달라진다면 그만큼의 이미지를 미리 준비해야겠죠. 근데 그 이미지의 가지수가 수백, 수천개를 넘어간다면? 이미지로 관리하는게 말도 안되는 상황이 올 것입니다. 그럴때는 QR코드가 필요할때 마다 QR코드를 동적으로 생성해서 표시해주는게 좋겠죠!

이런 기능은 QR코드를 동적으로 생성해주고 읽는 'ZXing'라이브러리를 사용하시면 정말 쉽게 구현하실 수 있습니다. 사용법은 매우 간단합니다. 일단 아래 링크에서 'ZXing.net'을 들어가시고 깃허브에서 파일을 다운받아주세요. 우리가 원하는건 여기에 포함된 'Unity Demo' 예제입니다. 다른건 필요없으니 유니티 허브에 이 예제를 연결하여 실행시켜주세요.

 

 

 

CodePlex Archive

An archive of the CodePlex open source hosting site

archive.codeplex.com

 

그럼 에셋폴더에 다음과 같이 파일이 있는 것을 확인할 수 있습니다. 100줄도 안되는 'BarcodeCam' 소스 읽어주세요. 여기까지 찾아와서 이 글을 읽으시는 분이라면 한번 읽으시면 다 이해하실 수 있을 정도의 코드입니다. 그리고 아래 사진에서 선택된 'zxing.unity'를 원하시는 프로젝트에 복사해서 사용하시면 '유니티 ZXing' 네임스페이스를 이용하실 수 있습니다.

 

동적으로 QR코드를 생성하는 코드는 이렇게 간단합니다. 'textForEncoding'에 생성하고싶은 QR코드의 URL을 넣어주시고 이렇게 코드를 실행시켜주시면 QR코드가 텍스처로 생성됩니다. 자세한 설명은 생략합니다.

 

좌측 'Sample Texture 2D'노드에 들어가있는 이미지가 생성된 QR코드입니다. 저는 이 QR코드의 하얀색 배경을 투명하게 만들고 싶어서 다음과 같은 쉐이더 그래프를 제작하였습니다. 'Multiply' 노드에서 B(-1)의 값을 올려주시면 더 깔끔하게 검은부분만 잘라서 QR코드로 제작하실 수 있습니다.

 

반응형