이걸 뭐라 설명해할지 막막한데,
PlayerPrefs에서 인트 값을 get하여, 뽑은 캐릭터에게 id값을 주고 있거든?
전체 캐릭터 배열에서 랜덤으로 추출한 캐릭터를, 전역 플레이어 캐릭터 리스트에 Add하고, get한 아이디값을 설정해준다.
그리고 PlayerPrefs의 인트값을 기존의 값에서 +1하여 해롭게 set한다.
이게 전체적인 프로세스임.
그런데, 같은 캐릭터, 그러니까 배열에서 중복되는 캐릭터를 뽑았을 때,
전체 캐릭터 배열의 id값 자체가 수정되어버리는 문제가 발생함.
물론, 이걸 해결해보기 위해서 이것저것 해봤지.
아예 플레이어 캐릭터 리스트 값을 수정하는 쪽으로도 해보고,
아니면 선택한 캐릭터 객체를 강제로 id값을 초기화도 해보고.
근데 소용 없더라. ㅋㅋㅋ
아예 다른 버그가 튀어나오기도 하고.,,
원래 PlayerPrefs은 지 멋대로 데이터 값도 바꾸고 그러냐?
골머리 아프네 진짜류ㅠ
PlayerPrefs 값을 바꾸지 않았는데 자기 멋대로 값이 바뀌는 경우는 절대 없음. 어디선가 PlayerPrefs 값을 바꾸는 코드가 있는거
id값 주는 방식을 바꾸면 될듯. id값이 고유해야하는 id값이 아닌건가 싶긴한데 뽑을때마다 +1해주면 결국 안뽑히는 애랑 id값이동일해지는데 맞음?
객체마다 고유한 값을 의도한 게 맞음 ㅇㅇ, 리스트 내에 중복되는 캐릭터도 있으니까. 근데, 중복되는 캐릭터를 뽑아버리면, 같은 캐릭터의 ID값마저 모두 같아져버리는 버그가 발생해서 그런 것....
그러니깐 id값은 고유하게 두고 동일 캐릭터가 여러개 존재해도 되는거면 id값 외에 추가로 해당 캐릭터가 몇번째로 뽑은건지 추가 속성을 하나 더 부여해주면 될듯.
아... 해결했다... 3시간 걸렸네 진짜... ㅠㅠ
코드 없으니 뭔지 모르겠지만 전체 캐릭터 배열에서 캐릭터를 추출할 때 복사 없이 단순히 레퍼런스만 가져오는 거 아님?
뭘 바꿨는데 다른애도 자동으로 값이 바뀌는 거면 이거밖에 없을 거 같은데
해결했다... ㅠㅠ 3시간 걸림
뭔가 고유아이디에 대한 조건이 붙여지면 좋을것같은데
instance id를 써.