본문 바로가기
유니티5 독학 & 게임 제작

유니티5 독학하기 그8번째 걸음-드디어 끝낸 챕터5

by 인터넷떠돌이 2017. 5. 27.
반응형

안녕하세요?


지난번 포스팅에서 천신만고 끝에 페이스북과 소셜 연동을 위해서 필요한 Package Name, 클래스 이름, 해시키 값을 얻는 것을 보았습니다. 이번 포스팅에서는 이제 이 3가지 값을 가지고서 이제 소셜 네트워크 연동을 실습해 보고자 합니다.



먼저 페이스북 개발자 홈페이지로 가서, 예전에 추가한 적이 있는 Shootergame의 기본설정으로 들어갑니다. 그리고 거기서 이전에 추가하지 못한 플랫폼 추가에서 안드로이드를 추가한 다음, 위 스크린샷과 같이 이전 포스팅에서 구했는 값 3개를 입력하도록 합니다.



다음으로는 앱ID와 앱 시크릿코드를 미리 메모장에 복사해서 넣도록 합니다. 그리고 이제 AndroidManifest.xml을 만들러 가도록 합니다. 



먼저 유니티5로 가서, Project윈도우에서 위 스크린샷처럼 먼저 기본적으로 Prime31에서 제공하고 있는 Manifest파일을 더블클릭하도록 합니다.



모노 디벨롭에서 다음과 같은 화면이 뜨는 것을 볼 수 있는데, 붉은 색으로 표시된 부분에서 위에서 적어놓은 페이스북에 있던 Shootergame이라는 앱의 앱ID를 입력하면 됩니다.



다만 주의해야 하는 것은 \ 다음에 스페이스바를 눌러 한칸 띄워서 이렇게 입력해야 제대로 입력하는 것에 유의해야 한다고 책에서도 언급을 하고 있습니다.



다음으로 Tools 메뉴에 있는 Prime31을 눌러서 Generate AndroidManifest.xml File이라는 메뉴를 눌러서, 본격적인 안드로이드 메니페이스파일이라고 해서 권한을 관리하는 기능을 하는 파일을 제작하도록 합니다.



실행결과 위 스크린샷처럼 AndroidManifest.xml이 생성되는 것을 볼 수 있습니다. 이 파일을 더블클릭하면 아래와 같은 코드가 나옵니다.



모노 디벨롭을 열어서 확인해본 결과, 이전에 안드로이드 스튜디오를 독학할 때 많이 보았던 형식의 코드가 나오는 것을 볼 수 있었습니다.



다음은 페이스북 개발자 홈페이지로 가서, 위 스크린샷처럼 도구 및 지원이라는 항목으로 가서, 그래프 API탐색기를 클릭하도록 합니다.



위 스크린샷에서 제가 한가지 실수를 했는데, 먼저 앱을 Shootergame으로 변경하고 나서, 위 스크린샷에 표시된 것 처럼 토큰받기를 시도해야 합니다. 일단 Shootergame을 선택하고 나서, 토큰이라고 해서 정보를 페이스북으로 부터 앱이 얻어올 수 있는 권한을 얻는 것을 시도해 보도록 하겠습니다.



위 스크린샷에서 보시는 것처럼 이메일과 유저의 페이스북 친구를 볼 수 있는 권한을 선택한 다음, 액세스 토큰 받기를 선택하도록 합니다.



위 스크린샷처럼 액세스 토큰을 받고난 다음에, 시험삼아 me라고 위 스크린샷에 붉은색 밑줄로 표시한 곳을 선택하였더니, 제 정보가 뜨는 것을 볼 수 있었습니다. 이제 제가 실습으로 만든 게임이 과연 안드로이드 환경에서도 제대로 작동하는 지를 알아보기 위해서, 먼저 블루스택을 실행하도록 합니다.



먼저 블루스택에서 구글에 로그인한 다음, 페이스북 앱을 설치하도록 합니다. 



다음은 빌드셋팅으로 가서, 먼저 game이라는 씬을 빌드하도록 합니다. 이 작업은 시간이 어느정도 걸렸습니다.



다만 이 경우에는 제가 원하고자 하는 것이 아니라, 이전에 만들었는 드레곤 라이더가 제자리 비행하는 사진이 나왔다는 것이 문제였습니다. 그래서 하는 수 없이, 이번에는 제대로 빌드하기 위해서 다시 유니티5로 갔습니다.



그래서 위 스크린샷처럼 DemoAndroid항목으로 가서, FacebookTestScene를 눌러서 실행시키고, 빌드할 씬(Scene)으로 선택을 하도록 합니다.



위 스크린샷처럼 빌드할 씬을 선택한 다음, 다시한번 유니티5의 프로젝트를 안드로이드 앱으로 빌드 하도록 합니다.



이번에야 말로 페이스북을 테스트 하기 위한 화면이 제대로 나오는 것을 확인할 수 있었습니다. 그런데 문제가 앱을 일단 빌드하고 나면, 더이상 유니티5의 콘솔 창으로 확인이 불가능하다고 합니다. 그래서 이 역할을 할 수 있는 프로그램이 있다기에 한번 찾아가 보도록 했습니다.



제 경우에는 간단한 경로에 platform-tools라는 것이 있었습니다. 즉 AndroidSDK가 설치된 경로로 가서 platform-tools란 폴더를 찾아가면 adb.exe라는 프로그램이 있는 것을 확인할 수 있습니다.



다음으로는 시스템 변수 편집이라고 지난번 포스팅에서 다룬적이 있으니 설명은 생략하도록 하겠습니다. 아무튼 adb.exe가 있는 경로를 지정하고 나서, 이제 cmd창에서 이를 실행해 보도록 하겠습니다.



하지만 어찌된 일인지 adb.exe는 아무 경로에서 실행시키려하는 것은 실패하였습니다. 결국 하는 수 없이, 일일히 adb.exe가 있는 경로를 도스창에서 지정해서 실행을 시키는 수 밖에 없었습니다. 아무튼 cmd창을 실행시키고 나서 adb.exe가 있는 폴더까지 간 다음, 다음과 같이 입력을 하도록 합니다. 


adb logcat -s Unity


이 명령어는 유니티5의 콘솔창처럼, 이미 빌드가 되어 버린 앱의 logcat을 보여주는 명령어입니다. 일단 여기까지 해서 페이스북 Demo가 제대로 뜨는 것이 확인이 되었으니, 다음으로 넘어가도록 합니다.



adb.exe가 실행되는 동안, 블루스택에서 깔아둔 Graph Request(me)라는 것을 눌러서 제 페이스북 정보를 불러오도록 해 보겠습니다.



하지만 제 기대와는 달린 400: Bad Request라는 메세지만 뜨면서 안되는 것을 볼 수 있었습니다. 그래서 이를 해결하고자 별의 별 작업을 실행해 보았습니다. 일단 블루스택을 껐다가 다시 켜면, cmd상에서 adb.exe를 위에서 보여준 것처럼 adb logcat -s Unity 라고 실행을 시켜도 별 반응이 없었습니다.


이 문제는 의외로 간단히 해결할 수 있었는게, 블루스택에 설치된 앱을 삭제하고, 유니티5에서 새로 앱을 빌드해서 실행한 다음, adb.exe에서 실행을 하면 해결이 되었습니다.



그리고 400: bad request라는 에러도 해결이 되었는게, 먼저 로그인이 된 줄 알았더니, 위 스크린샷에 붉은색 밑줄을 친 부분처럼 Login/Reauth with Publish Perms이라는 것을 눌러서 페이스북에 로그인을 한 다음에야 제대로 작동하는 것을 볼 수 있었습니다.



제대로 된 제 정보가 나오는 것을 cmd창에서 나오는 것을 볼 수 있었습니다. 이것으로 챕터5에서 할 수 있는 모든 실습을 좌우충돌이 많았지만, 어떻게 실습하는 데 성공하였으며, 조만간 빠른 시간안에 챕터6를 하도록 하겠습니다.

반응형