이제 실질적으로 스마트 기기에서 증강 현실을 구동시켜보도록 하겠습니다.
제가 설정해둔 '타겟' 위에 큐브를 하나 올려 놓고 화면이 터치될 때마다 색깔이 바뀌도록 만들어보겠습니다.
일단 'Materials'라는 폴더를 하나 만들고 '폴더 우클릭 -> Create -> Material'로 새로운 머테리얼을 하나 만들어줍니다.
그다음 Hierarchy의 'ImageTarget' 하단에 큐브를 하나 만들고 새롭게 만든 Material을 입혀줍시다.
이제 터치하면 큐브의 Color를 바꿔줄 코드를 작성해보겠습니다.
프로젝트에 'colorChange.cs' 라는 스크립트를 하나 만들어 아래와 같이 작성해줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | using UnityEngine; using System.Collections; public class colorChange : MonoBehaviour { int touchCount; int maxColorCount; int currentColor; Material material; public Color[] colors; void Awake() { touchCount = 0; maxColorCount = 3; currentColor = 0; material = GetComponent<MeshRenderer>().material; StartCoroutine("colorFunc"); StartCoroutine("colorFunc2"); } IEnumerator colorFunc() { while (true) { yield return null; this.touchCount = Input.touchCount; if (this.touchCount > 0) { if (Input.GetTouch(0).phase == TouchPhase.Began) { currentColor++; if (currentColor >= maxColorCount) currentColor = 0; material.color = colors[currentColor]; } } } } IEnumerator colorFunc2() { while (true) { yield return null; if (Input.GetMouseButtonDown(0)) { currentColor++; if (currentColor >= maxColorCount) currentColor = 0; material.color = colors[currentColor]; } } } } | cs |
'18번 째 줄에 "material.color = colors[currentColor];" 를 추가해 주시면 좋을 것 같습니다.'
colorFunc() 코루틴 함수는 모바일 용이고, colorFunc2() 코루틴 함수는 pc에서 확인해볼 수 있는 코드로 작성되었습니다.
코드를 간략히 설명해드리겠습니다.
화면을 터치하면 자신이 정한 3가지 색상으로 차례대로 큐브의 색을 변경시켜 주는 코드입니다.
코드를 다 작성하셨다면 Hierarchy에 있는 ImageTarget 하단에 만들어 둔 Cube에 'colorChange.cs' 스크립트를 넣어줍니다.
이제 Cube의 Inspector 창을 보면 아래와 같이 나옵니다.
위에서 작성한 코드에 maxColorCount를 3으로 설정해두었습니다. 최대 사용할 Color 갯수를 의미하며 위 사진 부분의 Size에 3을 적고 Enter 키를 눌러줍니다.
3가지 색상을 추가할 수 있는 부분이 생기게되며, 검정 색으로 지정된 부분을 클릭하셔서 원하는 색 3가지를 마음대로 고르셔서 바꿔줍니다.
아래와 같은 화면이 뜨면 Datasets 탭의 Load sampleAR Database에 체크를 하시고 그 아래의 Activate에도 체크해줍니다.
이제 안드로이드 설치 파일인 .apk 파일로 추출할 차례입니다.
먼저 유니티에서 'Ctrl + S' 키를 누르면 씬을 저장할 수 있습니다.
저는 'main'이라는 이름으로 저장했습니다.
씬 저장이 완료 되었다면 File -> Build & Settings를 눌러줍니다.
씬을 추가하기 위해 'Add Open Scenes' 버튼을 눌러 씬을 추가해줍니다. 추가가 정상적으로 되었다면 'main'이라는 씬이 추가될 것입니다. 그 다음 PC, Mac & Linux Standalone으로 플랫폼이 설정되어 있을텐데 'Android'를 선택하고 Switch Platform 버튼을 눌러 플랫폼을 변경해줍니다.
플랫폼이 정상적으로 변경되면 Android 우측에 유니티 로고가 위치하게됩니다.
이제 다시 Build & Settings 창에 들어가셔서 Build 버튼을 누르면 .apk 파일로 추출할 수 있습니다.
apk파일을 스마트폰에 넣고 다운로드 받은 뒤 실행하면 아래와 같이 '마커'로 설정한 타겟 이미지 위에 색이 변하는 큐브가 카메라에 나타나는 것을 보실 수 있습니다. 화면을 터치하면 자신이 정한 3가지 색으로 바뀔 것입니다.
Vuforia의 AR SDK를 활용해 기초 구현을 완성해보았습니다.
다음에 좋은 예제가 생기면 포스팅해보도록 하겠습니다.
'- GameProgramming > └ VR/AR' 카테고리의 다른 글
★ 1. Unity 환경의 증강현실(AR) 기초 구현 1/2 (1) | 2017.03.05 |
---|