viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fada62f9aa4178f9f73eff392228122dd8eef42f3e3cc668d20c0087bca72e1b0ef75f2a5e817c



성과 유닛 소환 시스템은 프로토타입때 했던 부분이므로 후딱 복사해서 집어넣었다(UI는 나중에 해당파트 할때 제대로 보수하기로 하고)







viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fad962f9c392464c6943ca11f4541cecfd4fe0ef1f3bbee9a177a30d8c5ed66312ceec4f7ab7d86d


이전엔 성 체력 상태별 스프라이트 변화를 무식하게 스프라이트 3개 넣어서 햇는데,


본애니메이션 만들면서 알게된 스프라이트라이브러리 에셋을 이용해 이것도 예쁘게 정리햇다







viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fad962f9c392464c6943ca11f4541cecfd4fe0ef1f3bbee9a177a30dd15084334793ee185c434f15


근데 이것들 갖고놀다가 가격 0으로 만들고 이따구로 막 뽑아본적이 잇는데

한 10마리 정도만 생겨도 프레임드랍이 생기기 시작하는 것이엇다...


물론 지금 생각하는 게임 특성상 화면에 유닛이 몇십마리씩 차는 일은 거의 없을거같지만




누군가가 '2d는 어지간하면 최적화 걱정 괜히 미리 안해도돼' 해서 마음 놓고 잇엇는데

이때까지 리소스에 신경을 너무 안쓰고 단순 구현에만 신경써서 최적화 개나줘버린 데브를 하고 잇엇을지도 몰라

본애니메이션 캐릭 하나당 본 10개 넘게 쓰고잇기도 하고







viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fad962f9c392464c6943ca11f4541c81914ce2e974421404d88f25440404472af2307eca859106


그 악명높은 프로파일러를 열어보고 좀 살펴보는데


하나하나는 잘모르겟고 아무튼 우상단에 가장 눈에 띄는 하늘색의 '스크립트' 부분이 가장 큰 리소스를 잡아먹는 것 같앗다

스크립트는 수학함수같은거 도배하지 않는이상 생각보다 연산시간 안잡아먹을거같은데 의외엿다






viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fad962f9c392464c6943ca11f4541c81914ce2e974421404d88f25155204407df83e7cca4d9e93

오마에... 오마에가 문제인데스?


SpriteSkinUtility.Deform()이라는 분충이 시간을 꽤 많이 잡아먹는것같앗다


스프라이트스킨이라면...





viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fad962f9c392464c6943ca11f4541c81914ce2e974421404d88f2516510d477df23170ca5b0f30


아마 본애니메이션에 쓰이는 컴포넌트인데...?


자체적으로 이미 제공된 컴포넌트의 스크립트를 어케 건드리라는걸가...




일단은 유니티 최적화 방법을 구글링해서 지금 내가 할 수 잇는 것들부터 손보기로 햇다

사소할것같지만 하면좋고 안해도그만이지







viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fad962f9c392464c6943ca11f4541c81914ce2e974421404d88f251d5256442bf03129cae8632e


Find류 함수를 자제하라는데 Update()에 for문을 넣어놓고 Find를 이따구로 중첩시켜놓은곳도 잇엇다




viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fad962f9c392464c6943ca11f4541c81914ce2e974421404d88f254451541478f63478ca52423a

바로 정리




근데 딴거만 건들고잇엇고 잠시 생각해보니 결국은 저 SpriteSkinUtility.Deform()을 건들지 않으면 병목이 풀리지 않을 것이다




viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fada62f9aa4178f9f73eff392228122dd8eef42f3e3cc668d20c00dee7f27f4c08ad0c2a07ddb9

2D애니메이션 문서를 보니 Burst와 Collections 패키지를 깔면 개선이 된다고 한다







viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fada62f9aa4178f9f73eff3922281240b4edf629ae2216c03188761b108cbb8a361c0d78192dadfa

깔으라면 깔아야지








viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fada62f9aa4178f9f73eff392228122dd8eef42f3e3cc668d20c0089e6a72c4959a9582a31d82d

? 이왜진?






viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fada62f9aa4178f9f73eff392228122dd8eef42f3e3cc668d20c008db5f5244009a95f2adda851

이따구로 뽑아도 렉이 안걸린다






viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fada62f9aa4178f9f73eff39667d4246ddeff728db636863385ff56500051783b176a9


야호~~~