아래 Resources 글이 있어서 관련 내용을 찾아봤음
지금 제가 만들어논 시스템은..
게임 시작 시 게임 실행동안 항상 필요한 것들을 Resources에서 로드함
인스턴스 존이 생성될 때 Resources 내의 몬스터, 파티클 등 일부를 풀링용으로 로드함
게임 오버되었을 때 해당 인스턴스 존에서 사용했던 Resources 파일들을 언로드함
이런 상태임
다 만들어놨으니 더 손댈일 없을 줄 알았음
근데 Addressables을 써야한다니.. 왜?
비동기 로딩 - 이미 나눠서 로딩하고 있는 상태라 몬스터, 파티클 수백개여도 로딩 시간 얼마 안 될텐데?
참조 카운팅으로 자동 관리 - 직접 할당, 해제 해도 되지 않나
일부 업데이트 가능 - 이건 뭐.. 모바일이 아니여서 상관없어 보임
다른 장점이 더 있음?? Resources 쓰면 언젠가 큰일남?
찾아본 내용만 봐선 바로 와닿는 게 없어서 질문드림..
[🐣질문] Resources를 쓰면 왜 안 되는 거지
211214(tomatoss)
2024-09-23 02:17:00
추천 0
댓글 20
다른 게시글
-
obfuscator 지원중단이면 유니티6에서 못쓰는건가
[1][💬] 익명(hobby2424) | 24.09.23추천 0 -
인붕이 ㅈ됬다ㅋㅋ
[2][💬] 익명(203.90) | 24.09.23추천 2 -
요새 왜 이쁘지도 않은 레니콘이 유행이냐
[5][💬] 익명(211.235) | 24.09.23추천 0 -
게임 밸패마냥 엔진도
[3][💬] 익명(61.72) | 24.09.23추천 0 -
우주고양인가 뭔가 그건 내려갔나 보네
[5][💬] cF(typical4281) | 24.09.23추천 0 -
커뮤니티에서 게임팀 구하길래 개발자로 들어갔는데
[17][💬] 익명(59.26) | 24.09.22추천 0 -
유니티 뉴비 다이얼로그 질문 드립니다
[3][🐣질문] 익명(223.38) | 24.09.22추천 0 -
뻘글) 클래시로얄 서버구성
[5][💬] 익명(183.102) | 24.09.22추천 4 -
사업자 걍 간이과세로 신청하면 됨?
[10][🐣질문] 익명(223.39) | 24.09.22추천 0 -
공포 게임 만드는 님들 대박
[7][🐣질문] 익명(123.212) | 24.09.22추천 0
리소스즈에 에셋 다 박아넣엇던 시절이 있는데 빌드하고 배포하고서야 깨달음 모든 에셋이 실행시점에 로딩된다는걸 사람들은 게임 켜고 검은화면에서 로딩 1분 넘어가니 안되는 줄 알고 안햇음 - dc App
모지.. 나눠서 로드해도 모든 에셋이 실행시점에 로딩 되는 거임..?
걍 바꾸기 귀찮아서 그런거아님? - dc App
반드시 이건 지나가야하는 에셋(공통 ui 등), 이 씬을 지나가지 않으면 게임자체를 실행 못하는 에셋(로비창) 등은 리소스에 넣는게 맞아. 왜냐하면 네가 제대로 배운대로 시작할때 다 가져오는거라서 더 빠르고, 사용하기도 쉽거든. 하지만 예를들어 원신으로 비교해보자. 네가 지금 몬드성에 있는데, 나타 지역의 모델링이나 데이터가 필요할까? 이걸 리소스에 다 넣으면 느려지고 효율적이지 않겠지? 굳이 어드레서블일 필욘없어. 다만 리소스 파일이 아니라 동적으로 사용가능한건 동적으로 사용하는게 더 올바른 자세라는거야 - dc App
간단히 말하면 네가 오늘 수학 시험을 보고 있는데 내일 시험볼 한국사를 외우고 있을필요가 있을까? 수학하나 외우고 있기도 힘든데. 그런거야. - dc App
다만 내가 말한거기도 한데, 장기적으로 업데이트 할 예정에 있거나 ui 바꿀일이 있다면 이조차도 리소스에 안넣는게 좋지. 구글이 조사한 바에 의하면 게임 앱에서 동작할때 걸리는 시간과 유저 이탈률은 양의 상관관계를 띄고 있다고 하니까. - dc App
그래서 인스턴스존 실행 때 해당 존에 필요한 걸 갖고오도록 나눠서 로딩하고 있는뎀..
'A던전에 필요한 리소스만 불러오고 게임 오버 시 A던전에서 쓴 리소스를 할당 해제한다' 이게 내가 원하는 시나리오인데.. 리소스 폴더는 저렇게 개별로 불러오지 않고 A~Z던전 리소스를 게임 시작할 때 다 불러온다는 얘기 아님?
아 테이블 초기화 과정이 아주 많이 느리다고 하네.. 이제 이해했음
님아 공식문서에서도 걍 쓰지말라고 해놨음
리소스를 로드하기 위해서는 리소스 인덱싱 테이블이라는게 필요함. "knight"라는 리소스를 가져오려면 "knight"라는 키값 -> 인덱싱 테이블 -> 실제 knight리소스 과정을 거쳐야하는거지 Resources폴더에 있는 것들은 유니티가 빌드를 할 때 그 안에 것들을 전부 인덱싱 테이블에 포함시킴 그리고 게임이 실행될 때 이 인덱싱 테이블이 로드되는거고 근데 이 인덱싱 테이블이 크면, 게임 최초 실행될 때 볼만할거임
흐음..
키 갯수가 많아 봐야 천 단위일 거 같은데.. 아닌가 ㄷㄷ
시간복잡도가 O(n log(n))구나.. 이해함
지금 하고 있는 거 마무리되면 뜯어고쳐야겠네 답변 해주신분들 ㄱㅅ
아래의 경우를 감당 한다면 Resources 써도 됨 1. 스플래쉬 이전 화면에서 검은 화면이 오래 지속 되어도 상관없다면(용량이 커질수록 체감 될 듯) 2. 리소스만 수정하고 싶은데도 빌드해서 구글과 애플의 심의 받고, 배포하겠다면 (최소 수시간 ~ 몇일) 3. 소스만 수정해서 배포하고 싶은데도 리소스로 인해 늘어나는 빌드 시간을 기다릴 수 있다면
해도 괜찮은 경우가 아니라 그냥 하면 안되는 이유네 ㅋㅋㅋ