'Application.dataPath'에 해당되는 글 1건

  1. 2011.12.15 :: android apk안에 바이너리 소스 넣기..
Unity3D/tip 2011.12.15 18:55
Unity3d에서 안드로이드 빌드시(아이폰은 안해봤지만 비슷하게 가능할것같다..) 리소스에 속하지 않는 데이터(xml이라던지 DB파일들..)를 apk에 함께 포함해서 package하고 싶지만..
따로 파일을 특정위치에 넣는방법을 몰랐다.

Assets폴더 아래에 있더라도 Resource폴더 안에 있는데이터가 아니거나, 한번도 사용되지 않는데이터라면, 패키징시 제외된다.  (path를 가지고 동적으로 로드하는데이터도 제외됨.)

그렇다고 Resource폴더에 집어넣는다해도 unity3d에서 자체적인 포멧으로 변환해버리는것 같다.

결국 Application.Datapath에서 찾을수가 없다...

이리저리 한참 헤메고 다니다. apktool이란놈을 찾았는데. 패키징된 apk를 풀고..원하는 데이터를 삽입하고, 다시 패키징 해주는 툴이다..(sign이 풀려서 다시 sign해야한단다..)

여튼...이것도 간단하게 되는작업은 아니였다..

2박3일동안 이것만 찾아다니고 있다가 mp4동영상 스트리밍하는글을 보게 됬는데, 반신 반의 하면서 "StreamingAssets"라는 폴더를 만들어서 넣어봤다.

원하는대로 apk파일 안에 assets 안에 넣은파일들이 온전히 들어가있다.

헌데 이파일을 접근하려해도  Application.Datapath에선 디렉토리나, 파일에 보이질 않는다..

하지만 WWW클레스로 접근 가능!!

android에선 "jar:file://" + Application.dataPath + "!/assets/<파일이름>"으로 접근이 가능하다.

읽기는 되는지 모르겠지만(아마 되겠지..) 쓰기는 불가능할것이다.

(내경우엔 DB파일로 사용하는것들이라 쓰기가 꼭필요한기능..)

그래서 Application.persistentDataPath 로 원하는 데이터들을 복사해준다.(안드로이드 빌드셋팅에서 퍼미션 체크해야함..)

이렇게 복사해두고 복사한데이터들을 사용하면 아무문제없이 사용이 가능하다. 
신고
posted by andwhy

티스토리 툴바