- Today
- Total
목록분류 전체보기 (351)
프로그래밍 농장
https://forum.unity.com/threads/differences-between-the-new-compression-methods-in-build-window.487486/ 유니티 2019.3 정식빌드이후 빌드옵션 중 Compression Method 가 있는데, 지금까지는 Default로 되어있어서 딱히 신경안쓰다가 LZ4로 값이 변경되어있길래 궁금해서 찾아봤다. 옵션선택은 Default / LZ4 / LZ4HC 이렇게 3가지가 존재한다. 2019.2까지는 Default로 선택되어있었는데, Default(ZIP) : 기본값 LZ4 : 빌드 속도 빠름. 개발빌드 때 적합함. LZ4HC : 빌드는 느린데, 로딩이 빨라짐. 최종빌드에 적합함.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cx06Ja/btsz6M1OxMq/iWWKwo9fVybmjxxLkZJ58k/img.png)
에셋 임포팅 에셋 데이터는 CPU GPU등의 하드웨어에서 즉시 쓰일 수 있는 포맷일 필요가 있다. 그러나 대부분의 파일 포맷은 저장공간을 최소화하도록 되어있다.(압축) 따라서 유니티는 저장공간에 있는 데이터를 에셋 데이터로 컨버전 한다. 그리고 이렇게 변환된 에셋 데이터는 라이브러리 폴더에 캐싱된다. 이 과정을 에셋 임포팅이라 한다. 문제는? 근데 에셋 임포팅은 오래 걸림. 변경이 많으면 많을수록 더 오래걸린다. 만약 아예 모든 에셋을 임포트 해야 하는 상황이거나 플랫폼을 바꿔야 하는 경우라면 더욱 더 오래걸린다. 그러면 이걸 어떻게 해결할까? 임포트된 에셋 데이터는 라이브러리에 캐싱된다. 따라서 팀내에서 라이브러리 폴더를 공유할 수 있다. 플랫폼 스위칭 같은 경우를 대비하여 플랫폼별로 라이브러리 폴더를..
1. 유니티 엔진 내부는 C++로 짜여있다. 유저 코드 부분만 C#으로 짜여있다. 따라서 유저 코드 부분에서만 C#사용으로 인해 속도가 느리다. 2. IL2CPP로 빌드하면 유저가 쓴 코드도 CPP로 변환된다. 3. C#을 컴파일하면 IL코드가 생성되고, MONO는 IL코드가 다시 여러 플랫폼에서 돌아갈 수 있게 해준다. 4. Mono는 IL코드를 그때그때 컴파일한다. 즉 JIT방식이다. 5. JIT방식은 인터프리터보다는 빠르다. JIT은 인터프리터와 달리 중간 처리된 코드(IL코드)를 컴파일 하기 때문 6. IL2CPP역시 Mono같은 역할을 수행한다. IL코드를 여러 플랫폼에서 돌아갈 수 있게 해주는 것. 7. IL2CPP는 AOT방식이다. 즉, 미리 모든 코드를 컴파일해둔다. 따라서 성능은 JIT보..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XR0Oy/btszQCLx9DA/EfDCSAWGeJLu6H7SRkKOvk/img.png)
개념 -> 인텔mac : 2020년 이전에 생산된 인텔 i3, i5, i7 등의 인텔CPU를 사용하는 애플 컴퓨터 -> 실리콘mac : 2020년 이후에 판매되며 애플에서 자체제작한 M1 CPU를 사용하는 컴퓨터 1. 메모리, SSD 확장 인텔맥 실리콘맥 가능 불가능 인텔맥의 경우는 CPU와 메모리, SSD가 각각 물리적으로 독립된 별도의 장치로 대부분의 경우 부품을 변경하여 용량을 증설하는 것이 가능했습니다. 실리콘맥의 경우에는 메모리가 CPU와 함께 기판에 붙어있고, SSD도 보드에 붙어있어 분리가 불가능합니다. 2. 부트캠프 인텔 맥 실리콘 맥 부트캠프로 윈도우 설치 가능 불가능 인텔 CPU를 사용하던 맥에는 부트캠프라는 애플에서 제공하는 소프트웨어를 이용하여 하드디스크를 분할하고 정식 윈도우즈를 ..
요약 APK : 기존 개발자가 만든 앱에 대한 모든 옵션과 다양한 환경(ex. 다국어셋팅, 디바이스별 옵션 ..) 이 전부 포함되어 개발자가 서명까지 진행 후, 배포하는 형식 AAB : 개발자가 APK 배포시 사용하였던 모든 요소들을 구글플레이가 사용자의 환경에 필요한 요소들만 셋팅하여 서명 후, 배포하는 형식 (=Android App Bundle) Play Asset Delivery (PAD) : AAB 에 이어 구글에서 제공하는 일종의 확장파일 제공방식. (= 기존의 초기 리소스 or 델타패치(증분)..리소스를 제공하기 위한 별도 cdn.. 등을 활용한 방식자체를 구글에서 제공하는 방식. -> PAD 옵션을 사용시 AAB 내 하나의 아티팩트로 제공되어 압축과 델타 패치를 제공해준다. ( 이때 구글에서..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/QIpze/btszH6e89yG/8aJYui3fufsAkKKsbLaeK1/img.jpg)
기본적으로 유니티에서 에셋번들이란 아래와 같다. 에셋번들 : 에셋(모델, 텍스쳐, 씬, 프리맵 등..) 들의 묶음. 위와 같이 에셋의 묶음인 에셋번들을 별도 빌드시, 이를 런타임에서 사용할 수 있다. 이를 통하여 DLC를 제공하거나, 컨텐츠를 패치하는 등의 작업이 가능하다. 에셋번들을 사용하는 이유 이와 같이 에셋번들빌드를 수행하는 이유는 다양하며, 특히 용량에 민감한 모바일플랫폼에서는 최초 앱 배포 시에는, 적은 용량을 배포하고 추후 서버에서 에셋들을 받도록 할 수있다. 추가적으로 업데이트 혹은 픽스시, 앱 자체를 스토어에서 업데이트 하는것이 아닌, 앱 내에서 처리가 되기에,기존 사용자의 이탈률도 상대적으로 낮출수있다는 수치적 이점이 있다. 에셋번들의 성능적 이점 기본적으로 유니티 프로젝트를 빌드할 때..