Unity3D v.3.5.5f3 Pro / iOS Pro (with 2D ToolKit) 기준.


1. 이미지 자체 최적화


png 등의 이미지를 import 하면 압축된 용량이 아닌 원래 용량으로 인입됨.

아이폰의 경우 pvrtc로 압축하여 용량 줄일 수 있음.


256 x 256 size 이미지 크기 비교

 - RGBA 32bit : 256 kb

 - RGBA 16bit : 128 kb

 - RGBA Compressed PVRTC4 : 32 kb

 - RGBA Compressed PVRTC2 : 16 kb


texture type 설정

 - GUI/HUD 용도로 사용하는 이미지는 GUI로 설정 (이미지 품질이 가장 좋음)

 - 그 외는 Texture 혹은 Advanced 선택

   - Advanced는 Texture 설정에서 사용자가 옵션 선택 가능

   - Advanced에서 "Generate Mip maps" 설정을 해제하면 용량을 줄일 수 있다. 

    (2D에선 불필요. 게임 화면과 카메라와의 거리를 가깝게 잡은 경우 화질 개선에도 도움이 됨)


이미지 비율 조정

 - Unity3d에서는 한 변의 길이가 2의 배수인 정사각형으로 이미지를 사용하게 됨. (2, 4, 8, 16 …)

 - 압축할 때 이를 2의 배수인 정사각형으로 늘려주므로 정사각형 안에 들어가도록 사용할 것.

   - 9 x 9 이미지는 16 x 16 으로 늘어나게 됨.

   - 툴을 통해 이미지 병합시 만약 8 x 16 처럼 비율이 맞지 않을 경우 동일하게 16 x 16으로 늘어나므로

     8 x 8 두장 혹은 다른 이미지를 더 합쳐 16 x 16으로 만드는 것이 용량면에서는 좋음 (성능과 반비례)

   - 실제 1024 x 1024 altas를 PVRTC4로 압축시 용량은 0.5 mb정도 (2048 x 2048 : 2mb)


2. 이미지 화질과의 상관관계


개별 이미지를 atlas로 합치는 것이 성능 면에서는 도움이 됨.

 - but atlas size가 커질 경우 화질이 떨어질 수 있음. (정확한 원인은 파악 못함)

 - 개인적인 관점에서 1024정도가 적당한 듯. (2048 이상일 경우 화질 저하 정도가 꽤 큼)

 - 4096 사이즈의 경우는 iphone에서 이미지가 보이지 않음

    - Edit / Graphic Emulation 설정을 No emulation으로 설정할 경우 보인다는 글이 있었으나 적용해도 보이지 않아 실패함.


3. 용량 & 성능


이미지를 import하고 이를 atlas로 병합하는 과정을 거칠 경우 원본 이미지가 프로젝트에 포함되어 있을 수 있음.

 - 실제 build시 unity에서 사용하지 않는 이미지는 포함시키지 않게 되어 있으나

   Asset 폴더 내에 Resource 폴더가 있을 경우 Resource 폴더 내의 모든 내용은 강제로 프로젝트에 포함됨. (동적 로딩용)

 - 원본 이미지를 별도로 압축하지 않은 경우 앱 용량이 매우 커질 수 있음. =_=


iOS build 시 설정

 - Target Device : iPhone / iPad보다 iPhone 혹은 iPad 단독으로 설정

 - Target Platform : armv6 < armv7 < armv6 & 7

 - Api Compatibility Level : .NET 2.0 Subset < .NET 2.0

 - Stripping Level : Use micro mscorlib < Strip ByteCode < Strip Assemblies < Disabled

 - Script Call Optimization : Fast but no Exceptions < Slow and Safe


[출처] http://rnblues.blog.me/90151016867


작년 중순쯤에 인형뽑기 프로젝트 때문에 만들었던 티스토어 플러그인이다.

첨에는 이클립스 결합방식으로 하다가 뭔가 과정도 복잡하고 이래저래 손이 많이 가길래

유니티에서 플러그인 형식으로 사용할 수 있도록 만들었다.

(물론 이거 만드느라 개고생을 ㅠㅠ)


데브코리아 노하우란에 올려두었더니 여러 개발사에서 사용하는것으로 보아 

그럭저럭 동작은 잘 되는 듯 하다.


[사용 시 주의]

항상 티스토어 개발자 센터에서 최신 유니티용 라이브러리를 다운받아

assets 및 libs를 최신으로 유지해야한다.


===============================================================================


Tstore_Plugin.zip


Tstore_Plugin.zip 파일 내용 >

 
1) lib : 티스토어 결재 모듈 라이브러리
     - IAPLibD(Unity3D) : 개발버전 (테스트용)
     - IAPLibR(Unity3D).jar : 상용버전 (실제 서비스용)
2) assets : 티스토어 결재 모듈 리소스
2) eclipse : 안드로이드 플러그인 용 이클립스 프로젝트
3) unity : 유니티 테스트 프로젝트

사용방법 >
 
== 이클립스 프로젝트 셋팅
1) 이클립스 프로젝트를 열어 CustomUnityPlayerActivity.java의 패키지명을 자신의 유니티 패키지명과 동일하게 변경
2) 이클립스 프로젝트 설정을 열어 Java Build Path > 라이브러리 > Jar 추가 >
             - 테스트용이면 IAPLibD(Unity3D).jar 추가
             - 실제 서비스용이면IAPLibR(Unity3D).jar 추가
3) 프로젝트 > 내보내기 > Jar파일 > 내보낼 자원선택 (해당 프로젝트 체크 ), 생성된 클래스 파일 및 자원 보내기 체크 후 완료
 
== 유니티 프로젝트 셋팅
4) 유니티 프로젝트의 Plugins > Android >
             - 생성한 Java lib(jar) 복사
             - 이클립스 프로젝트의 AndroidManifest.xml 복사
             - 첨부된 파일 중 assets 폴더 복사
             - 첨부된 파일 중 lib > 개발 버전에 맞는 jar 복사



한참을 찾았네;;

윈도우7의 경우 아래의 경로에 저장된다.


드라이브:\Users\계정명\AppData\Roaming\Unity\Asset Store


mac의 경우


open ~Library/Unity/Asset Store


단!! 위의 경로에 들어가면 각 패키지별로 폴더가 있는데

해당 폴더명이 패키지명과 다르니 주의요망!!



+ Recent posts