viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec80fa11d028312e15c0eaac8534358234c142d17e6488d897e9a0bbf1c01bcf72bc661beb086652e099ff93947bc4237e1d8214ffb920e93fbf


몹이 죽을때 돈을 주는 함수인데


몹이 맞으면 -> 체력이 0아래인가? -> 돈을 주고 -> 몹 비활성화 (오브젝트풀)


이런 순서인데 코루틴 없이 모두 한 업데이트에서 일어나고있습니다.



근데 이상하게 돈을 너무 많이줘서 확인을 해보니 한 프레임에 동시에 여러명한테 맞으면


저 순서가 모두 중복으로 각각 실행되서 돈이 복사가 되는것이었습니다.



급한대로 bool 변수를 넣어서 이미 돈을 준놈은 돈을 안주게 하니 이건 해결되었는데



정확한 원인이 뭔지 볼려고 체력을 확인하기 전에 이미 오브젝트가 비활성화면(activeSelf) break를 걸었는데


실행해보니 A와 B가 동시에 C를 때려눕히면 A B둘 다 C는 오브젝트는 활성화 상태라고 말합니다.



그럼 설마 A B 두개의 Update코드가 실행될때 A실행하다가 갑자기 B실행 왔따리~갔따리~ 하는건가요??


아니면 Update 다 순서대로 실행하고 SetActive는 좀 나중 순서에 실행되는건가요?


지금 방식대로면 오브젝트풀에 중복 오브젝트 오지게 추가되고있었겠네요..?

Queue 자료형에 같은 주소를 가진 GameObject가 두번 들어가면 어떻게되는걸까요..


유니티 문서에 SetActive가 특별히 다른 순서라는 말은 못찾겠는데.. 그냥 이 모든건 망상인걸까요?


저 정말 너무 무섭고 손이 벌벌 떨리고 있습니다.



viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec80fa11d028312e15c0eaac8534358234c142d17e6488d897e9a0bbf1c01bcf72bc661beb086652e099ff93947bc725281e8215fbba203582a9


이건 중요한건 아니지만 해당 코드입니ㄷㅏ.