유니티를 처음 시작하여 사용법을 잘 모르더라도 코딩을 하지 않아도 간단한 몇개의 클릭만으로 AR을 테스트하는 방법을 알아봅니다.

진짜 간단한 테스트 이므로 너무 기대는 하지 말고 방법만 알아보고 천천히 살을 붙여 나가다 보면 좋은 프로그램이 되어 있겠죠.

Unity 설치와 관련해서는 전에 설명을 하였는데(https://copycoding.tistory.com/446) 복습 차원에서 먼저 Unity 버전을 새로 하나 Hub에 설치하고 진행을 하도록 하겠습니다.

 

 

유니티 허브를 실행하고 좌측 메뉴에서 [Installs]를 선택해 주고 우측 상단에 있는 [Install Editor] 버튼을 클릭하여 설치 창을 오픈합니다.

 

 

 

Install Unity Editor 창이 나타나면 상단 탭에서 [Archive]를 선택합니다.

[Archive] 탭에서 하단 안내글이 있는데 여기서 파란색 [download archive]를 클릭해 주면 웹 브라우저 창이 나타납니다.

 

 

 

 

상단에 연도별 버전 탭이 있고 하단에 상세 버전의 목록이 있습니다.

본인이 사용하려는 버전이 있다면 찾아서 설치를 진행하면 됩니다.

여기서는 테스트용으로 Unity 2022.3.11을 설치해 보도록 하겠습니다.

버전 앞에 있는 파란색 [Unity Hub] 버튼을 클릭합니다.

 

 

 

웹에서 선택한 버전을 유니티 허브 프로그램으로 연결하여 설치를 진행한다는 파업이 나오는데 [열기] 버튼을 클릭해줍니다.

 

 

 

Unity Hub 프로그램에 웹에서 선택한 버전이 들어왔습니다.

각 버전별로 지원하는 추가적인 프로그램들이 있는데 스크롤을 하면서 원하는 기능을 선택해서 설치를 진행하면 됩니다.

 

기본적으로 선택되어있는 Microsoft Visual Studio Community 2022는 물체들을 움직임과 기능을 부여하기 위한 프로그램 작성에 사용됩니다.  지금 사용을 하지 않겠지만 설치하는 버전을 이용하여 Object에 기능을 부여하려면 필요하므로 설치 과정을 한번 보는 용도로 체크했습니다.

 

 

 

안드로이드 프로그램을 위해 Android Build Support도 클릭하고(아이폰 있으신분은 iOS 클릭)

하단으로 스크롤해서 필요한 기능들이 더 있으면 선택하고

 

 

 

마지막으로 [Continue]버튼을 클릭합니다. 

프로그램이 난이도가 올라가면 계속해서 플러그인등을 추가하게 되겠죠.

저는 맨 마지막 한국어 선택은 실제 하지 않았습니다.  모르는 툴을 학습할때는 한글로 설명해주는 사이트만 찾아보기에는 한계가 있어서 불편할 때가 있습니다.

 

Continue 버튼을 클릭하면 선택한 횟수만큼 설치를 위해 선택한 프로그램들의 라이선스 동의를 위한 팝업들이 나옵니다.

, 개인에 따라 어떤 프로그램을 체크했는지에 따라 여기에서 보이는 팝업들과 다르게 나옵니다.

 

 

 

Visual Studio 라이센스 확인하고 [Continue] 버튼을 클릭합니다.

다른 라이센스 확인용 팝업이 나오면 처크하고 [Continue] 버튼을 클릭 합니다.

 

 

 

[Install] 버튼이 보이는걸 보니 이제 마지막이네요.

Android build용 라이선스 확인하고 [Install] 버튼을 클릭하여 선택한 프로그램을 설치합니다.

 

 

 

설치 상태를 확장하면 선택한 프로그램의 상세 내역에 대해 하나씩 설치가 얼마만큼 진행되는지 확인할 수 있습니다.

 

 

 

Visual Studio CommunityInstaller 설치가 완료되면 실제 프로그램을 선택해서 설치해야 합니다.

스크롤을 하단으로 죽 내리다 보면 [Unity를 사용한 게임 개발]이 보이는데 이것을 체크합니다.

 

 

 

그리고 우측의 세부 정보 중에 Unity Hub의 선택은 제외합니다.

이미 설치를 했으니 다시 설치할 필요는 없겠지요.

우측 하단 [설치] 버튼을 클릭하여 설치작업을 진행합니다.

 

 

 

 

설치가 완료되었습니다. [OK] 버튼을 클릭해 줍니다.

 

 

 

 

창을 닫고 다시 Unity Hub 로 돌아와 모든 프로그램의 설치를 기다립니다.

 

 

 

설치가 완료되었습니다.

 

 

 

프로그램이 설치된 위치를 확인할 수 있습니다.

이제 새로운 프로젝트를 생성해 보겠습니다.

 

 

 

좌측 메뉴에서 [Projects]를 선택하고 우측 상단의 [New project] 버튼을 클릭합니다.

 

 

 

기본적인 템플릿을 제공하여 쉽게 2차원, 3차원 게임은 물론 가상환경등의 환경을 구축할 수 있습니다.

AR을 선택하고 프로젝트명과 저장 위치(기본 설정이 맘에 안들면 임의로 생성합니다)를 선택하고 [Create project] 버튼을 클릭합니다.

 

선택된 값으로 개발 환경이 생성됩니다.

먼저 Unity Hub 를 살펴보면

 

 

 

설정한 폴더에 입력한 명칭으로 프로젝트가 생성이 되었습니다.

 

 

 

그리고 작업 환경이 생성됩니다.

 

 

 

작업을 할 수 있는 Unity Editor 화면이 생성되었습니다.

 

여기서부터 실제 작업이 시작됩니다.  그렇다고 복잡한 건 아니고 Android 또는 iOS용 선택을 몇개 하는 것이 전부입니다.

 

이제 AR에 필요한 package가 설치되어 있는지 확인해 봅니다.

 

 

 

Window > Package Manager 메뉴를 선택하면 팝업 창이 나옵니다.

 

 

 

Package Manager 팝업 창이 버전에 따라 조금 모양이 다를 수 있는데 일단 리스트에서 AR Foundation, ARCore 가 설치되어 있는지 확인합니다.  iOS용을 만든다면 ARKit를 설치합니다.

만약 설치가 되어있지 않다면 우측의 [Install] 버튼을 이용하여(Remove 버튼 위치) 설치합니다.

 

다음은 현재 프로젝트를 어느 플랫폼에 빌드할지 설정합니다.

 

 

 

File > Build Settings… 메뉴를 선택해서 팝업 창을 오픈 합니다.

 

 

 

저는 아이폰이 없으므로 좌측 platform에서 [Android]를 선택하고

우측 하단의 [Switch Platform] 버튼을 클릭하여 프로젝트가 안드로이드에서 실행되기위한 파일을 import 시킵니다.

 

 

 

임포트가 완료되어 가는군요.

 

 

 

[Switch Platform] 버튼이 [Build] 버튼으로 변경되었습니다.

Unity 프로그램을 android에서 돌리기 위한 프로그램은 설치가 완료되었습니다.

이제 안드로이드 기기에 대한 상세 설정을 하기위해 [Player Settings…] 버튼을 클릭하여 팝업을 오픈 합니다.

 

 

 

상세하게 설정을 하기 위해서는 좌측 메뉴에서 Player를 선택하여 수정을 해야 하는데 여기서는 간단한 데모라 Player는 수정하지 않습니다.

마지막 메뉴인 [XR Plug-in Management]를 선택하여 우측 화면에서 안드로이드 아이콘 탭을 선택합니다.

그리고 프로젝트를 Play 하기위한 플러그인으로 첫번째 [Google ARCore]를 선택해 줍니다.

이것으로 모든 선택은 완료가 되었습니다.

특별한거 없이 그냥 안드로이드만 선택을 하면 됩니다.

 

이제 무엇을 보여줄지 화면 작업을 진행합니다.

물론 여기까지만 진행하고 실행해도 되는데 현재는 아무것도 없는 빈 공간이므로 실행해도 아무것도 보이지 않으니 아무거라도 하나 만들어야겠죠.

 

 

 

Hierarchy 창에 마우스를 놓고 우클릭을 합니다.  그리고 아무거나 3D 아이템을 하나 추가해 봅니다. 물론 다른걸 선택해도 되는데 그냥 간단한 테스트용이라 성의없이 작업합니다.

 

3D Object > Tree를 선택해 보았습니다.

 

 

 

가지 없는 나무 기둥 모양이 덩그러니 나타납니다.

나무를 클릭하고 나무의 위치를 원점에서 조금 이동을 시켰 봅니다. 원점은 내가 서있는 곳으로 나무가 같이 있으면 보이지 않겠죠.

 

 

 

나무를 하나 만들고 위치를 이동하였으니 앱에서 어떻게 보일지 확인하기 위해 상단에 있는 [Play] 버튼을 이용하여 미리보기를 해 봅니다.

 

 

 

위치를 조절 합니다.

 

대충 위치를 잡았으면 핸드폰을 연결해봅니다.

File > Build Settings… 메뉴를 클릭해서 조금전에 설정한 팝업을 띄웁니다.

 

 

 

우측에서 Run Device 항목을 찾고 [Refresh] 버튼을 클릭해서 핸드폰을 찾도록 합니다.

그리고 [Default device]를 확장하여 연결된 핸드폰을 선택하고 [Build and Run] 버튼을 클릭합니다.

그러면 apk 파일을 생성할 위치를 선택하라고 합니다.

 

 

 

관리가 쉽도록 현재 프로젝트의 폴더 하부에 새로운 폴더를 하나 생성하고(여기서는 Builds로 생성) apk 파일명도 적당하게 적어주고 [저장] 버튼을 클릭합니다.

 

 

apk 파일이 생성됩니다.

컴퓨터의 성능에 따라 시간이 많이 소요될 수도 있습니다.

잠시 후에 핸드폰으로 생성된 증강현실 화면의 확인이 가능합니다.

저는 핸드폰이 옛날거라 그런지 처음에는 까만 화면만 나와서 핸드폰에서 앱 실행을 종료하고 다시 실행했더니 잘 나오더군요.

 

 

- copy coding -

 

 

안드로이드 앱 이름은 최초 생성한 project 명을 이용하여 핸드폰에 설치가 됩니다.

드폰에 설치되면 아래와 같이 설치된걸 볼 수 있습니다.

 

 

이름을 변경 하려면 면저 AndroidManifest.xml 파일을 열고 android:label을 확인 합니다.

 

 

처음 볼때는 위와 같은 프로젝트 이름이 나오는데 한번 클릭 하면 실제 저장된 위치를 찾을 수 있습니다.

 

 

res > values > strings.xml 파일에 실제 이름이 저장되어 있습니다.

 

현재 등록된 이름을 삭제하고 변경하려는 이름을 기입 해 줍니다.

저는 두줄로 나오도록 하기 위해 개행문자를 추가해 주었습니다.

 

<resources>
    <
string name="app_name">테스트용\n이름바꾸기</string>
</
resources>

 

이제 다시 설치를 해보면 원래 등록되어 있던 앱의 이름이 아래처럼 변경이 되는걸 확인 할 수 있습니다.

 

 

- copy coding -


예전에 구글에서 제공하는 소스를 이용하여 구글 맵에 현재의 위치를 표시하는 앱을 만들었는데 최근에 다시 가보니 현재의 Android Studio 버전에 적용되는 library들로 source code가 변경이 되어 있네요오랜만에 다시 구현을 해보았습니다.

Android Studio 4.0을 사용해서 구현한 화면 입니다.


android place not authorized


 

모든 동작은 예전처럼 잘 되는데 이상하게 우측 [GET PLACE]를 누르면 아무런 동작도 하지 않습니다.  logcat을 살펴 보니 오류가 발생 하는 군요

 

21814-21814/copycoding.tistory.mylocation E/MainActivity: Exception: %s

 com.google.android.gms.common.api.ApiException: 9011: This API project is not authorized to use this API.

at com.google.android.libraries.places.internal.zzce.then(com.google.android.libraries.places:places@@2.3.0:6)

 

com.google.android.libraries.places를 사용할 권한이 없다는 건데 예전 소스코드에서 library의 변화가 있었나 봅니다권한이 없다고 하니 문제를 해결하러 API 관리 페이지에서 답을 찾아봅니다.


Google API 관리 사이트로 가보면 사용 설정된 API 목록을 볼 수 있습니다.


android place not authorized


현재 2개의 API를 사용하고 있다고 나오는 군요.

바로 아래쪽에 추가 API 목록이 있습니다.


android place not authorized


아무래도 여기에 있는 Places API가 원인인 것 같은데 선택을 합니다.


android place not authorized


[사용설정] 버튼을 클릭하면 권한을 받아오고 상단의 사용 설정된 API에 추가 됩니다.


android place not authorized


잘 추가가 되었군요.

이제 다시 앱을 실행해 볼까요?


android place not authorized


위치정보도 잘 가져오고 있습니다그 전에도 여기까지만 하고 손을 놓았는데 이번에는 꼭 뭔가를 만들어 보고 싶군요.


- copy coding -


Android appFirebase를 연결하는 방법 까지만 테스트 해보려고 합니다



먼저 android studio에서 Empty Activity로 앱을 하나 생성 합니다.


firebase android app


Project Name보다는 package name을 잘 기억해 둬야 됩니다.

com.copycoding.firebase 이렇게 미리 복사 해놓고 [Finish] 버튼을 눌러 작업을 진행 합니다.

 

이제는 웹에서 Firebase에 로그인을 합니다.


firebase android app


연결 하려는 프로젝트를 선택 하고 console로 이동 합니다.


firebase android app


[+앱 추가]를 선택 해서 확장 합니다.


firebase android app


추가할 플랫폼이 확장 되는데 여기에서 안드로이드 아이콘을 클릭 합니다.


firebase android app


Android studio에서 앱을 생성할 때 복사해둔 Package name을 적어주고 닉네입도 입력 합니다.  [앱 등록] 버튼을 클릭해서 2단계로 넘어 갑니다.


firebase android app


구성 파일 다운로드에서 [google-service.json 다운로드]를 클릭하면 파일이 하나 다운로드 되는데 앱에서 firebase에 연결하는데 사용되는 idkey 정보가 들어 있습니다.

다운받은 파일을 그림에서 처럼 android studio에 붙여넣기를 해주고 [다음] 버튼을 클릭 합니다.


firebase android app


안드로이드에 추가한 모습입니다.

 

3단계 Firebase SDK 추가에서는 Firebase를 사용하는데 필요한 내용을 gradle에 추가하는 방법을안내 합니다.


firebase android app


gradle에 이미 있는 내용도 있고 추가 해야할 내용도 있습니다. 직접 손으로 입력하는게 아니고 우측 복사 아이콘을 클릭하여 소스에 붙여넣기를 하면 됩니다.


firebase android app


2개의 gradle에 그림처럼 소스에 추가를 했다면 안드로이드 스튜디오 우측 상단에 나타나는 [Sync now]를 클릭해 줍니다.

잠시 후 안드로이드 스튜디오의 씽크가 종료되면 [다음] 버튼을 클릭 합니다.


firebase android app


4단계에서 앱과 Firebase가 연결 되었다는 내용을 볼 수 있습니다.  4단계에서 수고하셨습니다.”라는 내용이 나오지 않고 계속 맴도는 경우가 있습니다그럼 저는 안드로이드 프로젝트를 다시 만들어 샤용 합니다아직 코딩을 시작하기 전이니 가능 한 방법이죠.


- copy coding -


12

+ Recent posts