a65729ac3612782dbd4e5d46d691a9c823f0f03d9da8a8420cceb69159ad3333e34209c2ba8703

이랬던 낡고 병든 시야 메서드를...



a17d3aac3612782dbd4e5d46d691a9c84d58cbc2c2c71ca57a9eef0bd11f6652ec241040

a17d3aac3612782dbd4e5d46d691023298f8dcdc2b18265ba735521be26add3208ed1b

이런 젊고 병든 시야 메서드로 개선
코딩 시작한지 얼마 안 되서 짰던 메서드기도 하고
 HashSet 같은거 아예 몰랐어서 너무 비효율적인 방식으로 작성했었기도 하고...
마침 시야 관련 행동 추가와 제거할 것도 생겼으니 성능 문제는 없었지만 그냥 같이 리팩터링 해버림
근데 뭐 여전히 병든 메서드같긴 함... 코딩 뉴비는 아무것도 몰라요

=주요 변경점=
1. 이전 시야를 어둡게 하는 과정에서 다른 시야를 가진 유닛이 없는 타일의 밝기를 1로 되돌리는 과정을, 각각의 전장의 안개 구현을 위한 클래스로 이관.
2. 시야에 관해서는 순서가 그다지 중요하지 않으므로 List로 관리했던 데이터를 HashSet을 이용하여 모든 탐색 속도 개선
3. 탐색속도를 개선하면서 기존의 시야 갱신 방식인 일괄적으로 밝게 하기 -> 벽에 의해 시야가 막히는 부분을 복원하기 대신. 어두워 질 부분을 미리 계산해서, 전체 부분에서 뺌.(이것도 Contains를 이용하여 구성하든 했었어야 했기 때문에 List로 하면 성능 저하 컸을듯)
4. 시야 내의 적 탐색 과정을 기존의 끝점에 RayCast 발사 대신 그냥 대충 OverlapCirlcle로 러프하게 필터링 하고, 시야 HashSet을 이용하여 정밀하게 제어. 이것도 List 방식이었으면 성능 오버헤드가 컸을듯