원래 리소스폴더에 다때려박고 씬에서 Load함수로 썻엇거든?
근데 이렇게하면 앱실행할때 메모리에 다올라가서 로딩이 길어지더라
그래서 알아봣더니 에셋번들을 쓰라고하길래
난 서버없이 로컬에 번들저장하고
리소스폴더 쓸때처럼 불러와서 쓰려고하거든
리소스폴더 모든 리소스 > 한 에셋번들에 빌드 ( 로컬에 저장 streamingfolder)
첫번째씬에서 번들 로드 LoadFromFile
근데 궁금한게 이렇게 하는거면 메모리에 모든리소스 다올라가는건 리소스폴더랑 똑같지않음?
무슨 장점이있는거지 리소스폴더는 앱시작시 메모리에올라가고 , 번들은 첫번째씬에서 로드할때 메모리에 올라가고등 이렇게 타이밍에관한 장점만있는건가?
에셋번들 로컬 메모리관리용으로만 쓸려니까 빌드사이즈만커지고 이거 뭔 잘모르것네
어셋번들은 어셋이들어있는 하나의 zip이나 패치파일정도로 이해하면 편함 빌드시에 프로젝트에 직접 포함안하고, 따로 뽑아서 서버통해서 다운로드로 런타임에 다운로드해서 사용할수도있고, 빌드에 직접 포함할수도 있고, 그리고 특정 번들 자체를 메모리에 올리는 타이밍을 니가정할수있음
답변감사! 나는 빌드에 직접 포함해서, 번들을 메모리에 올리는 타이밍을 정하려는 목적이거든 (리소스폴더는 실행시 걍 다올라가니까) 근데 첫씬 awake에서 모든 번들을 로드해버리니깐 리소스폴더쓸때랑
차이점이 없는것같은데 좀더 늦게 로드해야하는거임..?
Awake에서 걍 번들 다 로드해버릴거면 리소스에서 로드하는거랑 큰차이가 없지 근데 너 헛돌고있는느낌이좀드는데, 네가말한 그 로딩이 기술적으로 해결불가능한걸수도있고, 로직자체에 문제가있는걸수도있음 무슨상황인지 설명가능? 뭔어셋을 로드하는거고 언제 로드하고 시간은 대충 어느정도고 이런것들
리소스폴더 쓸때 앱실행시 Unity 스플래쉬 로고 뜬다음에 첫씬 넘어가는 이 구간에서 렉걸린것처럼 8~9초씩 걸리길래, 검색해보니까 리소스폴더 써서 그렇다더라 그래서 리소스 전부 하나의 에셋번들로 만들어서 첫씬은 띄운다음에 메모리에 로드하려고 하는데, 이과정을 첫씬 awake함수에서 해버리니까 예전처럼 첫씬이 안뜨고 스플래쉬에서 지연현상 발생함. 로드하려는 에셋은 오디오클립,프리팹(몬스터,플레이어),각종png이미지(스킬아이콘등) 도합 150개정도.. 근데 내 로직이 이걸 하나의 번들에 빌드하고 한번에 로드하는 형식인데, 내경우는 번들을 여러개로 나누고, 각번들 사이즈를 줄인다면 해결책이 될수도 있는거야? 답변해줘서 ㄳㄳㄱ
번들을 너무 많이 나누는것도 마냥 좋은 해결책은 아니고, 이거 나누는건 좀 경험적인 경향이 큼 번들 타입 A, B가 있다고치면, A랑 B에 필요한 어셋이 동시에 필요한상황은 없는 형태가 나와야 A만로드, A해제 B만로드하는식으로 메모리 절감이가능하지 근데 이야기들어보니 렉걸린것처럼 멈춘다는건, 비동기가아니라 동기로 로드하고있는거 아녀? 코루틴 하나 만들어서 비동기로 로드하고있는거 맞음?
보통 그렇게 어셋이 커진거면 로딩 시간 자체는 필연적으로 어쩔수 없는거임 그렇기에 필요한 비동기로딩과 로딩 프로그래스바임
아.. awake에서 LoadFromFile함수로 압축되지않은(uncompressed빌드) 번들을 로드하고있엇는데 비동기로드하는 함수도 있엇네, 근데 이러면 메인로직 돌아갈때 이미 데이터가 셋업 되있는상태여야하는데 비동기로하면 위험하지않나..?
이게 첫씬 화면은 뜨고 멈추면 이해는하겠는데, 스플래쉬 로고 하얀화면에서 렉걸린것처럼 하니까 게임멈춘거같은 느낌을줘서 문제임 이게 동기로 로드해서 생긴문제구나 근데 첫씬 awake에서 이걸 로드를해야 start부터 데이터를 써먹는데 참 이거 문제네
가장 간단한 방법은, 아예 로드전용 씬을 만들고, 비동기로 로딩하면서 완료되었는지를 계속 체크해주다가 (+로 프로그래스바나 텍스트로 로딩 퍼센테이지를 직관적으로 보여주는것도 괜찮겠지) 이후, 로드가 완료되면 메인씬으로 이동하는거임 이게 가장 보편적이고 생각안해도되는방법
tab to start하는 로비씬 , 메인씬 이렇게 두개인데 로비씬 설계를 다시하던가 로비씬앞에 로딩씬 하나더 만들던가 해야겠다 ㅠㅠ 답변 고마우
사이트에 좋은 설명있었는데 다시 찾아볼려니깐 못찾겠다. 일단 Resources 폴더를 사용하면 게임 기동시에 Resources폴더에 메타데이터를 읽어들어야해서 초기 기동시 시간이 많이걸려 (streaming folder는 예외) streaming폴더에서 assetbundle을 loadfromfile로 읽어들일때 몇가지 좋은점이있는데 옛날에는 assetbundle로드하면 그 안에있는 리소스들을 전부 메모리에 올려서 필요한것만 캐싱하고 나머진 언로드 해야했었는데 요즘에 LZ4압축 옵션으로 선택해서 어셋번들 빌드하면 loadfromfile로 읽을때 어셋번들의 청크파일들만 읽어들여서 메모리를 잡아먹지않아
와 진짜 고맙다 알짜정보다 ㄹㅇ ㄳㄳ