장비 리스트와 딕셔너리 가 참조하는 객체에 대한 질문이 있어요
안녕하세요! 장비를 획득하면 OwnedEquipments라는 리스트에 추가되고 장비를 착용하면 EquipedEquippments 라는 딕셔너리에 추가가 되는데요, 이때 해당 리스트와 딕셔너리에서는 같은 객체를 참조하고 있는 것으로 이해했습니다.
그리고 SaveGame 메서드를 실행시킬때 GameData 클래스에 있는 OwnedEquipments 리스트와EquippedEquipments 딕셔너리를 json으로 직렬화 하고 게임을 끄고 재시작 한 이후 LoadGame 하였을때도 여전히 해당 리스트와 딕셔너리에서 참조하는 객체는 동일한 같은 객체인가요?

LoadGame 함수를 살펴보니 게임을 불러올 때 EquipedEquipments 딕셔너리를 새로 선언하고 OwnedEquipments 에서 다시 EquipItem 하여 딕셔너리에 추가해주는 부분을 확인했는데요 만약 LoadGame이후에도 여전히 같은 객체를 참조한다면 없어도 되는 부분이 아닐까 하고 먼저 GPT의 도움을 받아봤는데요 이런 답변을 받았어요.

그런데 이 답변이 신뢰가 안가서 선생님께 질문드립니다! 좋은 주말 되세요!
답변 1
0
일단 이런 부분은 꼭 디버깅을 해보시기 바랍니다. (좋은 디버깅 연습이기도 하죠)
C#에서 참조 타입은 곧 C++의 포인터 (주소값)입니다.
따라서 참조 타입을 이리 저리 넘기면, 둘 다 동일한 객체를 가리키고 의미하는 것이죠.
게임을 껐다 켜서 Json 직렬화에 의해 다시 만들면
주소는 바뀌겠지만, List/Dictionary에서 동일한 객체를 가리킨다는 사실에는 변함이 없습니다.
Addressables로 등록한 Slice된 Sprite의 하위 Sprite 접근법에 대해 질문드립니다
0
85
1
유니티 데이터 저장객체 ScriptableObject에 대해 의견 여쭤보고 싶습니다
0
141
2
안녕하세요 선생님 공부중에 궁금한게 있어서 질문 드려요
0
65
1
상속 구조에서의 awake흐름 및 init 함수 질문있습니다
0
85
1
젬 스프라이트가 로딩되지 않습니다.
0
116
1
혹시 스프라이트 드래그 앤 드롭으로 애니메이션 생성할 때
0
122
1
init() 2번 실행? 등 스킬 마무리 강의에서 질문 있습니다.
0
168
2
Managers.Object.Player와 Mangers.Game.Player 차이
0
112
1
상업적 출시에 대한 질문입니다.
0
169
1
EquipmentData 관련해서 질문드립니다
0
117
1
Data관리 관련해서 질문드립니다.
0
169
2
MonsterControllelr 에서 State Dead 사용
0
106
1
안드로이드 빌드에서는 LoadAllAsync , LoadAsync 가 동작 하지 않고 있습니다.
0
240
2
Instantiate 관련 질문 드립니다
0
158
1
포트폴리오 문서작성에 있어서 질문드립니다.
0
593
2
UI 연동방식에 대해서 질문드립니다.
0
181
1
인디게임출시경험이 중요할까요?
1
346
1
Coroutine과 uniTask 질문드립니다.
0
240
1
ResourceManager 메서드 역할
0
221
1
스프라이트 자료
1
181
1
xml 에
0
268
2
UI 리소스 사용문의
0
270
1
폴더 이름 제일 앞에 @를 붙이는 이유가 궁굼해요
0
594
2
3.:43 초 때부터 잘 안되는 것 같습니다...
0
328
1





