레이블이 유니티인 게시물을 표시합니다. 모든 게시물 표시
레이블이 유니티인 게시물을 표시합니다. 모든 게시물 표시

2016년 9월 30일 금요일

유니티 안드로이드 빌드

이번 포스트에서는 유니티에서 안드로이드 앱을 빌드하는 과정을 자세히 다루겠습니다.
유니티에서 안드로이드 앱을 만들고 싶다면 제일 먼저 해야 할일은 Android Studio를 설치하는 것입니다.
(구글 Android Studio 다운로드 바로가기)
Android Studio는 안드로이드 앱을 개발하는 도구이다.

Android Studio를 설치하다보면 Java SDK를 설치해야 한다는 안내가 나옵니다. 반드시 필요한 것이니 설치하기 바랍니다.
Java SDK를 설치하기 위해 오라클 사이트로 가면 당황스럽게 되는데, 그 이유는 Java SDK라는 말이 안보이기때문에 뭘 설치해야 할 지 막막해집니다.
Java SE 혹은 JDK라고 부르는 것이 그것이니 자신의 OS에 맞는 것을 선택하여 최신 버전을 설치하시면 됩니다.
Android Studio를 설치하기 위해서는 Java SDK 설치가 필요하다.

여기서 잠깐 SDK라는 것에 대해서 설명하겠습니다. SDK는 Software Development Kit의 약자로 쉽게 말해서 소프트웨어를 보다 쉽게 만들 수 있게 만들어주는 프로그램 재료입니다.
안드로이드는 Java를 기반으로 만들었기 때문에 Java SDK가 필요한 것이며 안드로이드 앱을 만들기 위해서는 Android SDK가 필요한데, Android Studio에 포함되어 있습니다.

Android Studio와 Java SDK 설치가 완료되었다면 유니티에게 이것을 알려줘야 합니다.
유니티 메뉴에서 Preference를 선택하고, External Tool 탭을 선택하면 이것을 설정할 수 있습니다.
SDK는 Android SDK 경로를 의미한다.
JDK는 Java SDK 경로를 의미한다.

JDK 경로 설정은 자동으로 잡히기 때문에 문제가 없지만, Android SDK 경로는 찾을 수가 없어서 당황할 것입니다.
Android SDK 경로를 알기 위해서는 Android Studio를 실행하고 SDK Manager를 선택해야 합니다.
Android Studio 시작화면에서 Configure를 선택한다.

SDK Manager 메뉴를 찾을 수 있다.

SDK Manager를 실행하면 SDK 경로를 알 수 있으니 이것을 Copy하여 유니티에서 설정하면 됩니다.
SDK Manager에서 SDK Path를 찾을 수 있다.

여기까지 했다면, 유니티에서 안드로이드 앱을 만들기 위한 준비는 끝난 것입니다.
이제 실제로 안드로이드 앱을 만드는 과정을 설명하겠습니다.
우선, 유니티 Build Setting 메뉴를 이용해서 현재 플랫폼을 안드로이드로 변경합니다.
현재 플랫폼을 안드로이드로 변경합니다.

Build 버튼을 누르기 전에 몇 가지 설정해야 할 것이 있으므로 Player Settings를 선택하고 Inspector 윈도우에 나타난 메뉴를 봅니다.
Player Setting에서 안드로이드 앱을 위한 설정을 해야 한다.

스마트 폰의 화면 방향 설정
안드로이드 앱이 어떤 화면에서 실행할 지 결정해야 합니다. 유니티는 화면 자동 회전을 지원합니다.
  • Portrait: 세로 방향 보기
  • Landscape: 가로 방향 보기


앱의 고유 식별자 설정
안드로이드 앱에는 앱을 구별할 수 있도록 고유한 식별자가 있습니다. 여러분의 앱도 이것이 필요하므로 설정해야 합니다.
안드로이드 앱의 고유 식별자 정보

Bundle Identifier가 그것이며 이것을 설정하기 위해서는 반드시 다음 규칙을 지켜야 합니다.
  • com.[회사명].[프로그램 명]
  • 예를 들어 ABC회사의 CDE 프로그램이라면 com.ABC.CDE라 쓰면 됩니다.
  • 대소문자를 구분하며 제일 앞의 com.은 절대로 변경하면 안됩니다.
Bundle Version은 버전을 표기하기 위함이고 Bundle Version Code는 향후 앱 업그레이드를 위한 것이니 현재는 모두 1.0과 1로 설정하면 됩니다.

Android SDK 버전
여러분은 안드로이드 아이스크림, 젤리빈 등의 명칭을 들어본 적이 있을 것입니다. 이것은 안드로이드 버전을 의미하며 특이하게도 안드로이드는 주요 버전을 알파벳으로 표기하고 각 알파벳으로 시작하는 명사로 이름을 붙였습니다.
안드로이드는 버전별로 알파벳을 붙인다.

안드로이드 앱을 만들기 위해서는 이 앱이 실행하기 위한 버전을 명시해줘야 합니다. 안드로이드 각 버전은 하위 호환성을 가지기때문에 최소 버전만 설정하면 상위 버전에서는 호환이 됩니다.
유니티에서는 Minimum API Level이란 이름으로 실행할 수 있는 최소 버전을 설정하게 됩니다.
하지만, 여러분이 주의해야 할 점은 Android Studio에도 앱이 실행할 안드로이드 버전의 SDK가 반드시 있어야 한다는 것입니다.
즉, 안드로이드 4.0을 최소 버전으로 한다면 Android Studio에는 SDK 4.0부터 최신 버전까지 설치되어 있어야 한다는 것입니다.
이것을 확인하려면 다시 Android Studio를 실행하고 SDK Manager를 실행해야 합니다.
SDK Manager에서 SDK를 버전 별로 설치할 수 있다.

만든 앱을 실행할 기기에서 안드로이드 버전을 확인하여 적절한 SDK 버전을 확보해야 합니다.
핸드폰에서 안드로이드 버전을 확인할 수 있다.

위에서 언급한 설정을 모두 마쳤다면 이제 앱을 만들 수 있습니다.
유니티 Build Setting에서 Build 버튼을 누르면 만들어진 앱 설치 파일(APK 파일)을 저장할 경로를 선택하게 되고 유니티는 설치 파일을 만들기 시작합니다.
(Build 결과물 저장 시 절대로 Assets 폴더 안에 만들 지 않아야 합니다.)
빌드가 성공적으로 수행된다면 APK파일이 만들어집니다. APK파일은 안드로이드 앱 설치 파일로써 안드로이드 기기에 이 파일을 옮겨서 실행하면 앱이 설치되게 됩니다.
확장자가 apk인 파일은 안드로이드 앱 설치 파일이다.

핸드폰에 APK파일을 옮기는 방법은 여러가지가 있겠지만, 가장 일반적인 것은 데이터 케이블을 연결하여 파일을 복사하는 것입니다.
APK파일을 옮기기 위해 PC와 연결한다.

현재는 테스트이기 때문에 이와 같은 방법으로 안드로이드 기기에 APK파일을 옮기지만, 향후 구글 Play Store에 올린다면 온라인을 통해 설치할 수 있습니다.
구글 플레이 스토어

스마트 폰으로 옮긴 APK파일은 스마트 폰의 파일 탐색기를 통해 찾을 수 있으며, 실행하면 앱이 설치됩니다.
옮긴 APK파일은 안드로이드에서 탐색기를 통해 찾을 수 있다.

APK파일을 실행하면 아마 대부분은 출처를 알 수 없는 앱이라는 경고가 나올 것입니다. 안드로이드는 보안을 이유로 APK파일을 수동으로 설치하는 것을 막아놓았습니다. 따라서, 여러분은 테스트를 위해 이 옵션을 꺼 놓아야 합니다.
APK 수동 설치시 경고 메시지가 출력된다.

문제 없이 설치되었다면 유니티 마크의 앱 아이콘을 확인할 수 있고, 이것을 실행하면 여러분이 Build Setting에서 포함시킨 Scene이 나타납니다.
(앱 아이콘은 Player Setting에서 바꿀 수 있습니다.)
Unity 시작 화면과 함께 만든 앱이 실행됩니다.

아두니티용 안드로이드 앱은 블루투스 통신을 사용해야 하므로 몇 가지 설정해야 할 것이 있으며 이것에 대해 나중에 다루겠습니다.



2016년 9월 19일 월요일

유니티 UI

유니티 UI는 GUI(Graphic User Interface)를 만들기 위한 특별한 기능입니다.

GUI란 사용자가 App을 조작하기 위한 메뉴를 의미합니다. 원래 UI(User Interface)는 전자 장치를 조작하기 위한 다양한 기능에서 출발했습니다.
하드웨어 UI의 예

GUI란 말은 원래 컴퓨터를 일반인들도 쉽게 다룰 수 있도록 만들기 위해 노력한 스티브 잡스가 고안한 개념입니다. 하드웨어 UI를 화면에 그래픽으로 표현함으로써 컴퓨터를 마치 기존의 전자 장치처럼 쓸 수 있도록 만드는 것이 GUI의 목표였습니다.
GUI의 디자인은 하드웨어 UI와 유사하다.

GUI는 점차 하드웨어로는 표현할 수 없는 다양한 조작 방식을 보여주며 독자적으로 발전되어 왔습니다.
GUI는 점차 발전되고 있습니다.

이제 소프트웨어 개발에 있어서 사용자 조작을 위한 GUI는 빠질 수 없는 개념이기에 유니티에서도 GUI 개발을 위한 기능을 제공하며 이것을 유니티 UI 혹은 UGUI라 부릅니다.

유니티에서 UI를 만들기 위해서는 Canvas라 부르는 특별한 컴포넌트를 사용해야 합니다. Canvas는 UI가 보여질 화면을 뜻하며, 이곳에 다양한 GUI 요소를 올려놓음으로써 디자인 할 수 있습니다.
유니티 UI 디자인 모습

UI는 2D이므로 Scene에서 2D 모드로 설정하고 편집하는 것이 좋습니다.
Canvas는 다음과 같은 기능을 지원합니다.

오버레이(Overlay) 방식 지원
GUI는 사용자를 위한 조작 메뉴이므로 항상 제일 앞에 놓여져야 합니다. 오버레이는 UI가 다른 어떤 것보다도 우선적으로 위에 놓여지게 하는 방식을 의미합니다.
GUI는 언제든 조작이 가능하도록 앞에 있어야 한다.

다양한 화면 크기에 대응
소프트웨어가 보이는 화면은 기기마다 다릅니다. 그 화면의 크기는 해상도가 될 수도 있고, 실제 디스플레이 장치의 크기가 될 수도 있습니다.
기기마다 화면의 크기는 다르다.

이 기능은 하나의 GUI 디자인으로 여러 기기의 화면에 대응하여 사용자에게 항상 같은 UI를 보여주는데 유리합니다.

3D GUI
유니티는 3D 디자인 도구이므로 당연히 GUI도 3D로 보여주는 것이 가능합니다.
3D GUI는 2가지 방식을 생각할 수 있는데, 첫번째는 회전에 의해 비스듬하게 보여지는 것입니다.
이제 GUI는 평면이 아닌 3D 공간으로 표현된다.

다음 방식으로는 3D 물체에 부착되어 사용자가 공간속에서 GUI를 보게되는 것입니다.
사용자가 공간을 돌아다니며 GUI를 조작할 수 있다.


유니티 UI에서 기본으로 제공하는 GUI요소는 다음과 같습니다.

Label
라벨은 텍스트를 표현하는 기본적인 GUI 중 하나입니다.

텍스트의 다양한 효과를 위해 폰트 지정, 글자 크기, 글자 색, 볼드/이탤릭 체 등의 기능을 지원하고 배치와 관련된 왼쪽/가운데/오른쪽 정렬 등도 가능합니다.

Image
GUI에서 아이콘과 같은 이미지를 보여주는 것은 기본적인 기능입니다.
PNG포맷 이미지를 이용해서 투명 배경을 사용하면 매우 깔끔하게 이미지를 보여줄 수 있습니다. 이미지에 색상을 입힐 수 있기 때문에 흑백 이미지를 사용한다면 하나의 이미지로 여러 이미지 효과를 줄 수 있습니다.
이미지를 이용하면 GUI를 멋있게 표현할 수 있다.

Button
버튼은 사용자가 조작할 수 있는 기본적인 GUI중 하나입니다.
이것은 Label과 Image를 조합하여 사용하기 때문에 이미지를 바꾸거나 폰트를 이용해서 다양한 디자인을 표현할 수 있습니다.
GUI 버튼의 예

Toggle
토글은 On/Off 상태를 전환할 수 있는 GUI입니다.
토글방식 GUI의 예

Slider
슬라이더는 값의 크기를 조절하는데 많이 사용되는 GUI입니다. 오디오 볼륨을 조절할 때 슬라이더 GUI가 주로 사용됩니다.
슬라이더 방식 GUI

슬라이더 GUI는 조금만 응용하면 다양한 모양으로 표현할 수 있습니다.
슬라이더 GUI는 다이얼 형태로 표현할 수 있다.

Dropdown
드롭다운 GUI는 옵션을 설정할 때 많이 사용합니다. 적은 공간에 여러 정보를 표현할 수 있다는 장점이 있습니다.
드롭다운 GUI

이 외에도 다양한 GUI 요소를 유니티 UI를 이용해서 표현할 수 있습니다. 다만, 기본으로 제공하는 것이 아니기에 조합을 통해 응용하거나 에셋 스토어에서 만들어놓은 것을 사용하면 더 훌륭한 디자인의 GUI를 표현할 수 있습니다.
대부분 멋있는 UI는 기본 GUI를 응용한 것입니다.


마지막으로 유니티 UI에서 제공하는 유용한 기능을 소개하겠습니다. 그것은 바로 유니티 이벤트(Unity Event)입니다.
GUI는 사용자와 상호작용해야 하므로 사용자 조작에 대한 반응을 구현해야 합니다. 문제는 이런 GUI 상호작용을 위해 프로그래밍을 해야 하기에 초보자들은 어려울 수 밖에 없습니다.
유니티는 GUI 상호작용 구현에 어려움을 겪는 초보자들을 위해 유니티 이벤트 기능을 만들었습니다.
유니티 이벤트는 Inspector Window에서 볼 수 있으며 유니티 UI관련 컴포넌트가 유니티 이벤트를 가지고 있습니다.
유니티 이벤트 메뉴

유니티 이벤트를 사용하면 해당 GUI에서 발생하는 이벤트에서 지정한 기능을 수행할 수 있습니다. 이 과정은 코딩없이 Inspector Window에 컴포넌트를 드래그하고 실행할 기능을 고르는 것으로 쉽게 해결할 수 있습니다.
유니티 이벤트를 적절히 사용하면 디자인한 GUI가 사용자와 상호작용하는 결과물을 얻을 수 있습니다.


2016년 9월 16일 금요일

유니티 빌드(Build)

빌드(Build)는 개발된 소프트웨어를 사용자 장치에서 실행할 수 있도록 만드는 작업을 의미합니다.
유니티에서 빌드는 유니티 에디터없이 작업한 Scene이 사용자 장치에서 실행할 수 있도록 만드는 것입니다.
유니티는 멀티 플랫폼 빌드(Multi-Platform Build)를 지원하는데, 이것은 다양한 OS 장치에서 작업한 결과물이 실행할 수 있도록 만들 수 있다는 뜻입니다.
유니티는 매우 많은 OS별 실행 결과물을 만들 수 있다.

유니티에서 빌드는 Build Setting 메뉴에서 처리됩니다.
유니티 Build Setting 메뉴

이 메뉴를 실행하면 Build Setting 관리자가 실행됩니다.
유니티 Build Setting 관리자

여기서 할 수 있는 일은 다음과 같습니다.
  • 보여줄 Scene의 선택
  • 빌드 플랫폼 선택
  • 빌드 옵션 선택
  • 빌드 기능

유니티는 작업 결과를 Scene 단위로 저장합니다. 따라서, 여러분은 빌드하기 전에 어떤 Scene을 포함시킬 것인지 결정해야 합니다.
Build Setting에 Scene이 포함된 모습

빌드 플랫폼은 쉽게 말해서, 어떤 OS용 실행 파일을 만들 것이냐 이며 대표적으로 Windows/Mac/Android/iOS 등이 있습니다. 빌드 플랫폼을 선택하려면 반드시 Build Support가 이미 설치되어있어야 하는데, 이것은 유니티 설치 시 컴포넌트 선택 메뉴에서 선택되어야 합니다. 만약, 빌드할 플랫폼을 선택할 수 없다면, 유니티를 다시 설치하여 필요한 컴포넌트를 선택해야 합니다.
유니티 설치 시 해당 플랫폼 Build Support를 선택해야 한다.

빌드 옵션은 전문적인 내용이라 여기서는 다루지 않겠습니다. 쉽게 말하면 Windows 32bit/64bit 등의 옵션이 빌드 옵션에 해당됩니다.
이렇게 하고 빌드 버튼을 누르면 결과물을 저장할 위치를 묻는데, 절대로 빌드 결과는 유니티 프로젝트의 Assets 폴더에 만들면 안됩니다.

빌드를 하기 전에 반드시 설정해야 할 것이 있는데, 그것은 바로 Player Setting입니다.
Player Setting 메뉴

Player Setting은 빌드된 결과물이 실행하는 방법을 보다 상세하게 설정하는 메뉴가 포함되어 있습니다. 대부분 전문적인 내용이라 정확한 지식없이 함부로 바꾸지 않기를 추천합니다.
다만, 프로그램 이름이나 아이콘, 실행 창의 형태 등은 설정해야 합니다. 플랫폼별 Player Setting 설정 방법은 향후 포스팅하겠습니다.

일부 플랫폼 빌드는 외부 도구가 필요할 수 있습니다.
빌드는 해당 OS에서 실행 혹은 설치 가능한 파일을 의미하며 대표적인 파일 형태는 다음과 같습니다.
  • Windows용 실행 파일은 exe확장자를 갖는다.
  • Mac(OSX)용 실행 파일은 app확장자를 갖는다.
  • Android용 설치 파일은 apk확장자를 갖는다.
Android와 iOS 경우는 유니티가 실행 혹은 설치가 가능한 파일을 만들어주지 않습니다. 그 대신 실행 혹은 설치가 가능한 파일을 만드는데 필요한 소스 파일을 만들어주기에 빌드를 완성하기 위해서는 외부 빌드 도구가 필요합니다.
  • Android의 경우는 Android Studio가 외부 빌드 도구
  • iOS의 경우는 Xcode가 외부 빌드 도구
안드로이드용 앱을 빌드하기 위한 Android Studio

iOS용 앱을 빌드하기 위한 Xcode

따라서, 여러분의 PC에 Android Studio 혹은 Xcode와 같은 외부 빌드 도구가 추가 설치되어야 합니다.
유니티 빌드를 위한 도구를 정리하면 다음과 같습니다.
  • 유니티 (필수)
  • 유니티 Build Support (필수)
  • 플랫폼별 외부 빌드 도구 (옵션)
Android와 iOS용 앱을 빌드하기 위한 상세한 절차는 향후 포스팅하겠습니다.

유니티에서 가능한 빌드 플랫폼을 몇 가지 소개하겠습니다.
Windows 플랫폼
Windows에서 실행되는 프로그램으로 Windows 10부터는 Windows Universal App이라 불리고 유니티에서 Windows Store 플랫폼으로 지원합니다.
Windows Store는 Windows10용 앱을 지원합니다.

Mac(OSX) 플랫폼
Mac 컴퓨터 OS는 OSX라고 부릅니다. 유니티는 Mac용 실행 파일을 만들 수 있습니다.

Android 플랫폼
안드로이드 폰 혹은 태블릿에서 실행 가능한 앱을 만들 수 있습니다. 유니티에서 만든 Android 앱은 Google Play Store에 올릴 수 있습니다.
안드로이드 빌드를 하려면 반드시 Android Studio를 추가로 설치해야 합니다.
유니티에서 만든 앱은 Google Play Store에 올릴 수 있다.

iOS 플랫폼
iOS는 아이폰과 아이패드를 의미합니다. 유니티를 이용하면 아이폰이나 아이패드에서 실행되는 앱을 제작할 수 있으며, 애플 앱 스토어에 빌드 결과물을 올릴 수 있습니다.
iOS 플랫폼 빌드를 하려면 반드시 Mac 컴퓨터를 보유해야 하고, Xcode를 추가로 설치해야 합니다.
유니티에서 아이폰과 아이패드용 앱을 제작할 수 있다.

WebGL 플랫폼
WebGL 플랫폼은 크롬이나 익스플러같은 웹 브라우저를 의미합니다. 유니티는 웹 브라우저에서 실행할 수 있는 결과물을 만들 수 있는데, 이것은 한때 인기를 누렸던 플래시 게임(Flash Game)과 같은 형태입니다.
웹 브라우저에서 실행된 플래시 게임은 한때 엄청난 인기를 누렸다.

XBox와 PlayStation 플랫폼
XBox와 PlayStation은 대표적인 콘솔 게임 기기입니다. 유니티를 이용하면 여러분도 XBox와 PlayStation에서 실행되는 결과물을 만들 수 있습니다. 다른 플랫폼과 달리 XBox와 PlayStation 플랫폼은 별도의 라이센스 비용을 지불해야 사용할 수 있습니다.
유니티는 콘솔 게임 기기용 프로그램을 제작할 수 있다.

유니티는 작업한 결과물이 수 많은 플랫폼에서 실행될 수 있도록 지원하는 플랫폼 수를 늘리기 위해 노력하고 있습니다.