해결된 질문
작성
·
309
0
8강 소프트 레퍼런싱에 대해서 강의를 듣다가 에셋이 로딩되고 객체에 할당되는 과정에 궁금증이 생겼습니다.
제 생각은 다음과 같습니다.
에셋이 로딩되면 에셋의 데이터를 가지고 객체를 만든다. 그리고 해당 에셋을 사용하는 클래스가 인스턴싱될 때 로딩된 에셋(객체화된 에셋)을 복사해서 추가한다.
만약 같은 에셋을 사용하는 클래스가 두 개 이상이라면, 로딩된 에셋을 두 번 복사하게 된다.
즉, 에셋을 로딩한다는 것은 복사를 위한 원본 객체를 생성하는 것을 의미한다.
제 생각이 맞을까요?
답변 1
0
음 그렇게 만들 수도 있지만, 자원의 낭비가 심해지겠지요?
일반적으로 게임 엔진은 하나의 에셋을 디스크로부터 메모리에 로딩한 후 공유하는 형태로 사용합니다. 이 때는 읽기 전용이 되겠죠. 이것이 일반적인 방법이지만, 그런데 메모리에 올라온 애셋정보를 변경해야 할 때도 있습니다. 이 때는 별도의 복제된 인스턴스를 생성하고 복제된 인스턴스를 할당해 작업합니다.