・
수강평 4
・
평균평점 4.5
ECS/DOTS를 처음으로 실습해 보았습니다! 이론적으로 모든 것을 다루지 않지만 ECS가 어떤 것인지 확실 하게 알수 있는 시간 이였습니다. 다른 학습자 분들도 완강 이후 여러 기능들에 대해서는 Unity의 공식문서를 통하여 학습하면 큰 도움이 될 것 같습니다. 완강 후에 복습과 자습겸으로 스크립트를 수정해 보았는데 다른 학습자 분들도 도전해 보시면 좋겠다고 생각 합니다! 좋은 강의 감사합니다!!!! --- [복습 및 자습] 1. Movement System PlayerMovementSystem와 ProjectileMovementSystem에 IJobEntity기반으로 동작하게 리팩토링 하여 Burst컴파일 효율을 높이고 병렬 처리가 가능하게 수정 하였습니다. - PlayerMovementSystem은 단일 엔티티 이지만 다른 것들과 일관성을 유지 하는게 좋을 것 같아서 Job구조를 추가 하였고 로직 전체가 Burst컴파일 되도록 보장 하였습니다. - ProjectileMovementSystem의 foreach루프를 제거하고 ScheduleParallel를 사용해서 다수의 발사체가 동시에 이동시 워크쓰레드를 효율적으로 사용하게 수정 하였습니다. 2. HP Bar System PlayerHpBarSystem와 EnemyHpBarSystem에서 ComponentLookup.DidChange() 체크를 추가 하였고 PlayerComponent와 EnemyComponent의 데이터가 실제로 변경된 경우에만 FillAmount를 계산하게 수정 하였습니다. 3. Collision ProjectileCollisionSystem에서 수동으로 EntityCommandBuffer를 생성하고 Job완료 대기시 하였던 Complete, Playback를 EndFixedStepSimulationEntityCommandBufferSystem를 사용하는 방식으로 수정 하였습니다. 4. Audio 마지막 효과음 구현까지 완료 후 메인씬에서 게임씬으로 이동시 AudioManager에서 엔티티가 즉시 생성되지 않아서 에러가 발생하고 있는거 같습니다. 때문에 다른 System스크립트들에서 했던 것 처럼 (audioBufferEntity == Entity.Null || !entityManager.Exists(audioBufferEntity)) 를 체크 하여 Update에서 엔티티 존재 여부를 확인 후 재생 할 수 있게 수정 하였습니다.
소중한 강의 후기 감사합니다. ~ 자세한 리팩토링 과정까지 소개해주셔서 다른 분들에게도 많은 도움이 될 것 같습니다.




