게임개발 시작한지 얼마 안되는 뉴비 질문 하나만 부탁할게!
OwnedIngredients 는 Ingredient 들이 있는 리스트인데 그중에 하나를 랜덤하게 가져오는 코드야
그런데 유니티는 아마도? 싱글 쓰레드에서 돌아간다고 배워서 isChosen 변수를 두고 가져올때 true로 바꾸면
다른 캐릭들은 같은 재료를 선택 못하겠지!! 라고 생각했는데 오산이었어 ㅠㅠㅠ
여러 캐릭들이 같은 재료를 가져오려고 난리더라
이럴때 어케해야되는지 GPT한테 물어보니까 lock을 쓰라는데 너무 생소해서
lock을 사용하는게 맞는 방법인지 모르겠어
이 코드가 뭐 여러 오브젝트에서 각각 불러오는건지 foreach로 되는 건지 알수가 없는데 - dc App
응 여러 오브젝트가 각각 실행하고있어
사용자 큐를 만들어서 쓰렴
오 찾아볼게 고마워
한 오브젝트를 여러곳에서 동시에 참조하려고 해서 그런거같은데 뮤텍스느낌으로 짜던가 ingredients에 큐에따라 분배해주는 기능을 넣고 큐에 오브젝트 넣는 식으로 하면될듯?
공부좀 해봐야겠다 모르는내용이라 무튼 고마워
removeat으로 삭제까지 했는데 같은재료를 가져온다니 게임매니저 인스턴스가 캐릭터마다 만들어진거아님?
그건 아닌데 캐릭터를 여러명으로 늘렸을때 같은 재료에 접근하려는 일이 생기더라고
? 못 쓰나?
해당 댓글은 삭제되었습니다.
자세한 답변 진짜 고마워!! 재진입이란 개념은 처음 알게되었는데 위 코드는 코루틴에서 실행되는 함수중 하나야. 여러캐릭터가 코루틴을 같이 돌려서 재진입? 이 가능해서 중복되는 현상이 일어났나봐. 요리사가 특정 상황에 요리재료를 계속 찾고 발견하면 요리를 하는 그런 내용이거든. 구조적인 부분을 수정하지 않으면 결국 lock을 사용해야 하는 부분인가보네. 아니면 Update문으로 요리검색하는것을 옮기면 괜찮을까? 무튼 다시한번 자세히 알려줘서 고마워!!!
코루틴 써서 그렇네 ㅋㅋ