[Atomic Game Engine] 안드로이드 빌드 시 생긴 어이없고 골때렸던 2가지 이슈

아토믹 게임 엔진으로 신나게? 데탑 환경에서 빌드 테스트 후 안드로이드 빌드를 해봤습니다. 프로젝트를 처음 만들 때 안드로이드도 선택해서 만들었기 때문에 비주얼 스튜디오에서 자마린을 통해 빌드 자체는 큰 이슈없이 수행이 되더군요. 그런데 문제는 빌드 후 실행중에 있었으니, 일단 아래 사진을 보겠습니다.

샘플 빌드 후 실행 사진입니다. 감이 오시나요? 에디터에서는 분명 이미지 한개를 더 복사해서 2개로 만들고 안드로이드로 빌드해서 돌아가는 것을 찍은겁니다. 이런식으로 제 프로젝트에서도 작업한게 실 디바이스 빌드에는 전혀 적용이 하나도 안 되어 있더군요. 급 맨붕이 오더라는....

이것저것 또 건들여보기 시작합니다. 클린 빌드도 해보고 유니티에서 처럼 빌드 세팅을 지원해 주길래 에디터에서 빌드를 해보려고 Android로 플랫폼으로 바꾸는 시도도 아래 스샷과 같이 해봤더랬죠. 하지만 돌아오는건...
'어 닥치고 그냥 비주얼 스튜디오에서 해!' 였습니다. 분명 유튜브 동영상에서는 빌드 세팅으로 바꿔서 빌드하는 것을 본거 같은데...


대체 이번엔 또 뭐가 문제냐 이놈! 하고 그래, 포기하면 편해 내가 이제 너를 놔줄께~로 맘을 굳히려는 순간 한번도 실행해 보지 않은 메뉴가 눈에 띄었으니.... 그것은

바로 Developer - Plugins - AtomicNET - Package Resources 였습니다. 이거 실행하고 비주얼 스튜디오에서 디바이스로 빌드 실행하니 개발한게 잘 적용이 되더군요. 어이가 없더군요....

두번째 이슈입니다. 그렇게 첫번째 이슈를 통과하고 그래 이제 디바이스에서도 적용이 되는구나!를 느낀것은 불과 몇초... 메인메뉴에서 플레이씬으로 넘어갔는데 어라? 왜 이미지가 하나도 안보이는것이냐!! 데탑모드에서는 잘 나오는거 확인했었다고! 아놔..... 휴....
먼저 소스를 보시면,

ResourceCache cache = GetSubsystem<ResourceCache>();
strImageName = String.Format("Image{0}", i);
imageArray[i] = Scene.CreateChild(strImageName);
imageArray[i].Position = new Vector3(0, 0, 0);

StaticSprite2D staticSprite = imageArray[i].CreateComponent<StaticSprite2D>();
strImageName = String.Format("Sprites/{0}.png", strImageName);
Sprite2D sprite = cache.Get<Sprite2D>(strImageName);
staticSprite.Sprite = sprite;

네, 별거 없습니다. 이미지 이름 만들고 씬의 자식 객체 노드를 만들어서 스택틱 스프라이트2D 컴포넌트 붙여주고 리소스 폴더에서 이미지 읽어와 스프라이트 컴포넌트에 세팅해주는 것입니다. 그런데 이게 작동이 안되더군요. 뻔히 데탑에서 되던것이...ㅜ.ㅜ 데탑과 디바이스 폴더 참조가 다른건가? API 레퍼런스를 찾아봐도 찾지를 못하겠고, 샘플을 봐도 따로 처리하는게 없는데 샘플은 또 잘되고.... 그래 이번에도 포기하면 편해를 생각하다가, 아토믹 에디터를 보니,

어라? 파일명이 소문자네 헐. 대소문자 구분을 확실히 해주시는 구나! 모바일에서는.... 왜왜 데탑에서도 안되지 그랬어! ㅜ.ㅜ 네, 사실 이 이슈는 제 실수긴 합니다만, 그래도 아토믹이 좀 더 엄격했더라면? 하는 아쉬운 부분이 있는 이슈입니다.

이제 진행중인 프로젝트 남은건 리소스 교체 및 추가하고, UI 좀 수정하고 광고 붙이면 될 듯한데, 광고가 관건이 될 듯 합니다. 제가 cocos2d-x와 유니티에서 온갖 플러그인 작업을 많이 해봤지만, 아토믹은 또 아토믹 나름데로 이슈가 있을테고... 정보는 없고, 샘플도 없으니...  고민해보고 cocos2d-x, 고도 엔진으로 돌아가야 할 듯 싶네요.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.