19b4dc23c1d32ca720afd8b236ef203e729a4045a4443469

이건 타일 관리 클래스이다. 벽을 기본적으로는 '외형만' 갖춘 형태로, 주요한 속성들은 모두 타일로 관리하는 방식을 하기 위해 이렇게 두었다.
대충 바닥 타일이면 타일 효과도 넣고 하다 보니까 조금 길어져버리긴 함 ㅋㅋ

저것만으로도 벽의 다양한 속성을 구현은 가능하지만, 벽의 유니크함이 없다는 느낌이라 한 가지 재밌는 걸 추가하기로 함.
DestroySelf()의 RemoveThisWall()이 바로 그 주인공 되시겠다.




1abcdc2ac4d12caf61b198a518d60403cc90a1e9b6cbf95360f1

벽의 서로 다른 특성을 위해 직렬화는 필요하지만, (여러가지 벽 효과를 마구 섞을 때마다, 새로운 클래스를 만들수는 없으니...)
돈이 없는 필자는 고오급 에셋인 오딘같은거 못쓰기 때문에 구조체로 그걸 우회하기로 했다.

대충 Enum과 value를 받아서 그걸 기반으로 각 벽의 독특한 효과를 만들어서 벽에 붙여주기로 함 ㅋㅋ


a14801ab040676b660b8f68b12d21a1dfc4c35decd

WallBreakActionInfo를 통해 이 추상 클래스를 상속한 하위 클래스들을 구현할거임



a15e31ad071ab4589e333d4856f43c2d2633e680c3f9f9dd07c8cdf0eec96006b3a7a29ccc58

가스통 폭발등을 위한, ExplodeOnBreak 클래스.
대충 생성자로 밸류 받고, 예외 상황은 프로퍼티로 때워버리는 상남자식 코딩을 해버림.


다른 것들도 이런 식으로 구현하면 되는데, 이걸 만들고 보니 되게 재밌는 걸 할 수 있게 되더라고.



0fb8d629f7d707a76abb98a518d604034d3a70df69262dfedb3f

기존에 수류탄을 던지거나, 적과 유닛 사이에 TileData의 Resistance이 1인 벽이 존재하면, 이런 식으로 그 벽을

파괴하는 기믹이 있었음.
근데 유리창이라는 놈이, 이어진 놈들은 안 깨지고 지 혼자만 깨져 버리는 것도 이상하잖아?



1abcdc2ad6d72cb267b1d1fb06df231daf70a3c104e81b57e834

그래서 그냥 유리창 프리팹에 강도 1(Resistance <= 강도면 파괴 판정) 범위 1 폭발을 넣어서, 인접한 유리창을 부숴버릴 수 있게 해봤다



0fb8d619d1da2aa979f1c6bb11f11a393594f7e1f5c8e51052
투척 전,


0cbbc419d1da2aa979f1c6bb11f11a39b9b090f98d24328033

투척 후.

사진에서는 안보이지만, 폭발범위가 1이기에 가까이 붙은 놈만 체력이 많이 깎였고, 유리창은 연쇄적으로 깨지는걸 확인 가능함.

의도치 않게 이 방식으로 벽을 연쇄할 수 있게 되서 만족스럽다 ㅋㅋㅋ