미해결
절대강좌! 유니티6 - ECS/DOTS 프로그래밍 마스터클래스
ecs관심이 있었는데 강의 잘 보았습니다.
현재 강의는 심화과정 2강의 빼고 다 보았습니다. 몇가지 궁금한 사항들이 있어서 질문드리려고 합니다. ecs, dots 병렬처리를 위해서 유니티에서 사용하는 시스템인데요. 이 강의에서도 여러 쓰레드를 사용하기 위해 잡에 작업들을 할당하는 코드를 사용하는 것으로 보입니다. 그리고 발사체와 적이 충돌시 HP를 깍는데 EnemyComponentLookup[enemy] = enemyData; 이런 코드가 있던데 이는 실제로 해당 컴포넌트에서 hp 변수를 수정하는 내용으로 보입니다. 하지만 멀티쓰레드에서 lock이나 뮤텍스같은 안전장치가 없는데 저런식으로 사용할 수 있는지 묻고 싶고... 두번째는Enemy오브젝트에서 여러 엔티티 update 이벤트를 사용하고 있습니다. EnemyComponent는 발사체에서도 사용하고 있고 moveComponent에서도 사용하고 있고 hpBarComponent에서도 사용하고 있습니다. Enemy가 죽었을때 수십만 이벤트가 현재 할당된 상태에서 문제가 없는것인지 추가적인 내용을 알 고 싶습니다. 현재 만마리 이상 스폰을 시키면 간혹 죽은 Enemy들이 살아있는 것 같은데 ecs, 멀티쓰레드 강의에서 젤 중요한 내용이 빠진게 아닌가 싶어서 여쭈어봅니다.