목록분류 전체보기 (112)
메피카타츠의 블로그

에셋 번들을 사용하면 에셋이 중복되는 문제가 발생할 수 있다. 이는 메모리 프로파일러를 통해서 확인할 수 있다. 여태까지 열심히 알아본 바로는 중복이 발생하는 경우는 다음과 같다. 1. 에셋 번들의 종속성(Dependencies)이 제대로 설정되지 않은 경우 에셋 번들의 종속성이 설정되어 있다면 번들 밖의 에셋을 사용할 때 종속된 에셋 번들을 먼저 로드하고, 해당 에셋에 있는 에셋을 사용한다. 종속성이 잘 지정되어 있다면, Shader를 사용한다고 가정하면 종속된 에셋 번들의 Shader 1개를 공유해서 사용한다. 에셋 번들의 종속성이 설정되어 있지 않다면, 번들 밖의 에셋을 사용할 때 에셋을 복제해서 번들 내부에 포함시킨다. 이 에셋을 다른 에셋 번들이 참조할 수 없기 때문에 이런 복제를 반복하는 에셋..

유니티에 대해 공부를 하다보면 에셋 번들에 대한 내용을 드문드문 접할 수 있다.나 또한 에셋 번들에 관한 얘기를 지나가면서 몇 번 듣기는 했는데... 에셋 번들이 뭔지도 모르고 있었다.지금으로부터 약 1달 전, 메모리 관리를 하며 에셋의 복제를 확인했고, 그 원인이 에셋 번들에 있음을 인지한 이후로 많은 공부를 하였다.지금은 기존의 BuildPipeline을 Scriptable Build Pipeline으로 업그레이드를 했고, Shader Stripping에 문제가 있어서 해당 부분에 대한 원인을 찾아보고 있는 중이다.아무튼, 이제는 에셋 번들에 대해 조금 알게된 것 같아 에셋 번들이란 무엇인지를 정리해보고자 한다. 모바일 게임을 설치하고 실행하면 이런 화면을 보게 될 것이다.여기서 다운로드 받는 것이 ..

나는 노래를 듣는 것을 좋아하고, 종종 노래방에 다니며 부르는 것도 즐긴다. 그러면서 작곡에 대해서 관심은 있었지만, 내가 별로 할 수 있을 것 같지는 않아서 늘 미뤄왔는데, 보컬로이드 작곡 관련한 유튜브 영상이 가끔 쇼츠에 올라와서 접하다보니 한 번 사용해보면 재미있을 것 같다는 생각이 들어서 바로 시작해보았다. 보컬로이드하면 하츠네 미쿠가 굉장히 유명한데, 나도 옛날부터 하츠네 미쿠의 곡들을 많이 들어왔고 지금도 많이 듣고 있기 때문에 하츠네 미쿠의 목소리를 활용해볼 수 있으면 좋겠다고 생각했다. 하츠네 미쿠에는 여러 버전이 있는데, 최근 버전 중 가장 호환성도 좋고 발음이나 평가도 좋은 V4X를 사용해보기로 했다. 구글에 검색해보니 공식 사이트가 나왔다. HATSUNE MIKU V4X BUNDLE ..

함수를 호출하는 오버헤드에 따른 성능 차이를 알고 싶어서 Vector3의 Normalize 방법 별 성능 테스트를 해보았다. 이전에도 Vector3.Normalize()와 Vector3.normalized에 대한 차이는 해봤는데 그것과 더불어 Vector3.Normalize() 내부에 있는 함수를 꺼내와서 직접 사용하면 얼마나 차이가 있을지 비교해봤다. using System; using UnityEngine; public partial class Tester : MonoBehaviour { private void OverheadTest() { Vector3 vector3 = new Vector3(2, 1, 1); Vector3 vector3Temp = new Vector3(); DoTest("Vecto..

(Unity 2021.3.10f1 기준) +2024.03.30. List는 가비지를 생성하지 않는 것이 맞고, Dictionary는 처음에만 조금 가비지를 생성하는 것? 같다. 자료 구조에 따라 가비지가 생성될 수도 있으니 애매하면 프로파일러를 사용해서 확인해보면 좋을 것 같다. JacksonDunstan.com | Do Foreach Loops Still Create Garbage? JacksonDunstan.com | Do Foreach Loops Still Create Garbage? Over a year ago I wrote an article title Do Foreach Loops Create Garbage using Unity 5.2 and tested foreach with a variet..

[결론] 요즘은 컴파일러들이 알아서 바꿔주기 떄문에 i++나 ++i나 별 차이 없다. 하지만 컴파일러가 바꿔준다는 것은 비효율적이라는 말이기도 하니 ++i로 작성하는 습관을 들이는 것이 좋겠다. 개발을 하다보면 성능에 대해서 고민이 들 때가 있다. for문을 돌 때 ++i을 쓰는데, i++에 비해 속도가 얼마나 빠를까? for문을 쓰는 것이 좋은가? 아니면 foreach문을 쓰는 것이 좋은가? Vector3.normalized는 Vector3.Normalize()를 호출하기 때문에 Vector3.Normalize()를 호출하면 오버헤드가 적은데, 얼마나 빠를까? Object.Instantiate()를 하고 SetParent, position, rotation 설정을 해주는 것과 Object.Instant..

저번 사볼에 이어서 오랜만에 쓰는 것 같다. 프로세카를 얼마 전에 시작해서 출퇴근시간에 하고 있는데, 덕분에 출퇴근시간이 상당히 즐거워져서 내가 리듬 게임을 좋아하는구나, 라는 것을 몸소 느낄 수 있었다. 최근에 가장 많이 하는 게임이 리듬 게임인 것 같아서 리듬게임을 먼저 쓰기로 했다. 내가 처음 접한 리듬 게임은 아마 EZ2DJ일 것으로 생각된다. 동네 문방구 앞에 오락기들이 깔려있었는데, 데몬 프론트와 스노우 브라더스2, 그리고 EZ2DJ였다. 대략 초등학교 2학년 때였던 것으로 기억하는데, 당시에는 오락기 뒤에서 다른 사람들이 하는 것을 보고만 있어도 재미가 있었다. 나름 당시의 인터넷 방송 비스무리한 것 아니었을까 싶다. 아무튼, 중학생 형들이 어려운 곡들을 곧잘 깨는 것을 지켜보면서 멋있다는 ..

오늘은 유니티에서 Package Manager를 통해서 제공하는 Memory Profiler에 대해서 소개할 예정이다. 유니티 2021에서 제공하는 0.7.1 버전을 기준으로 소개를 할 것인데, 현재는 1.0도 나와있다. UI나 세부적인 부분은 바뀌었겠지만 아마 핵심적인 부분들은 크게 바뀌지 않았을 것이라고 생각된다. 1.0에 대한 내용은 Unity Korea 채널에서 오지현님의 Memory Profiler 1.0 소개 영상을 보면 도움이 될 것 같다. https://youtu.be/rdspAfOFRJI 우선, 기본적으로 제공하는 프로파일러에서도 메모리에 대한 대략적인 정보와 어느정도의 디테일한 정보를 볼 수 있었지만, 지금은 Detail한 정보를 보려면 메모리 프로파일러를 통해서 보라고 한다. 메모리 ..