작동방식 : 어드레서블 그룹이 저렇게 있으면 그냥 그룹별로 통째로 리소스를 로드/해제하고 싶었음
근데, 그룹의 이름으로는 로드하는 방법이 없길래 그룹마다 label을 통일시키고 그 label로 로드하려고함
매개변수로 내가 로드하고싶은 그룹의 이름. 사실은 label 이름이지만 label과 그룹명을 통일시켜서 그룹명을 받아서 그 그룹의 모든 리소스를 로드함.
LoadAsset's'Async 함수로 그 label의 모든 리소스를 통째로 로드하고 이를 핸들로 받아놓음.
이 핸들이 완료될때까지 콜백함수를 통해 리소스 로드 현황을 알려줌. (로딩바)
로드한 그룹별로 핸들을 딕셔너리로 따로 관리함. 이유는 이 그룹별로 로드한거처럼 그룹별로 해제까지 하고싶어서.
그냥 대충빠르게 써본건데 이런식으로 내가 위에서 로드할때 저장한 그룹이름별 핸들을 가져와서 그 핸들째로 릴리즈하면 전부 릴리즈된다더라구요.
실제로 어드레서블 이벤트뷰어 확인해보니 해제되는것 확인함
이런 느낌으로 짜봤는데 이런식으로 사용해도 괜찮을까요??
생각해봤는데 게임내에서 리소스를 로드/해제하는건 아무리 생각해봐도 그냥 그룹단위로만 이루어질거같아서.. 그 외의 처리가 필요한지 당장은 모르겠음
그리고 지금 저 resources 딕셔너리에 키값으로 리소스 이름이랑 리소스 넣는거 예전에 쓰던거 일단 냄겨놓은건데 저걸 계속 사용할지 안할지 모르겠어서 일단은 그냥 냅둠. 저기에 들어간 리소스는 해제가 안되고있는거 알고있긴한데 그룹별로 해제하면서 저기에 있는거까지 같이 해제하는 방법이 잘안떠오르네요
흠 라벨링한 오브젝트도 같이 해제하고 싶으면 dic<라벨string, dic<string, object>>으로 자료형을 바꾸는건 어때요? 개별 오브젝트 호출하는건 GetObjectOrNull(string name)같은 함수 만들어서 이름 체크하고 가져오도록 하면 될 듯 - dc App
확인 ㄳㄳ. 확실히 저 자료구조형으로는 애초에 걍 한계가 있긴한듯
1. 메소드 이름 뒤에 Async 붙여서 비공기 함수라고 표현하기 2. 앱은 언제든지 종료될 수 있으므로 취소 가능 해야 함. 취소 토큰 전달 및 처리하기 3. 로드 중인 에셋이 있을 때 동일 라벨로 다시 즉시 호출하면 딕셔너리에 데이터 추가에서 문제 및 라이프 사이클에 대해 모호해 질 수 있음. 로딩 중 라벨에 대해 요청이 다시 들어왔을 때에 대한 처리 추가 필요 할 듯
해제 할 때에도 문제가 있는데 위에 언급한거 다시 한번 슥 읽어 보시면 뭔지 감 오실듯