타워레벨별 관리를 위한 에셋
TowerTemplate 작성
![](https://velog.velcdn.com/images/su1433/post/b3e5f9d3-e73b-4981-9504-3358ef5cfd5b/image.png)
- Asset으로 저장할 수 있도록 설정
- 클래스 내부에 구조체를 만들면 클래스 외부에서는 구조체 변수를 선언할 수 없다
- 권장하는 방법은 변수를 코드에서 조작하지 못하도록 모두 private로 설정하고, 모든 변수에 접근할 수 있는 프로퍼티 제작
- 레벨과 상관없이 하나의 타워에 하나만 필요한건 towerPrefeb처럼 하나만 설정
TowerTemplate Asset추가
![](https://velog.velcdn.com/images/su1433/post/95410717-d71c-46a1-8550-c3539d0c2cc3/image.png)
Projectile 수정
![](https://velog.velcdn.com/images/su1433/post/5dbe89fd-45aa-4517-a73f-060ac86a89a2/image.png)
TowerWeapon 수정
![](https://velog.velcdn.com/images/su1433/post/2359442e-0666-487b-9297-189b7f6d924b/image.png)
SearchTarget메소드 수정
![](https://velog.velcdn.com/images/su1433/post/f65e514c-e263-43b7-9f31-e88eeed09504/image.png)
- distance를 weapon의 레벨의 범위로 수정
AttackToTarget메소드 수정
![](https://velog.velcdn.com/images/su1433/post/e901996a-4fed-44a1-931e-8c40a1810315/image.png)
SpawnProjectile메소드 수정
![](https://velog.velcdn.com/images/su1433/post/26277b03-17bb-4ac2-b3bb-28ca19446bd3/image.png)
타워 prefeb에 적용
![](https://velog.velcdn.com/images/su1433/post/a7f3fab7-0823-44f9-a877-c590d4e037ed/image.png)
TowerDataViewer 수정
![](https://velog.velcdn.com/images/su1433/post/d49b703f-9b9c-4997-9041-787aa48e07ba/image.png)
- UpdateTowerData()를 타워 레벨업에 따라 이미지가 바뀌도록 설정
TowerSpawner 수정
![](https://velog.velcdn.com/images/su1433/post/1a15481a-5776-4d8f-b8d8-25f5cbef0b74/image.png)
- TowerTemplate의 정보로 바뀌도록 설정
![](https://velog.velcdn.com/images/su1433/post/2426ce30-fef6-4393-8bfd-e7b577bd276e/image.png)
- 나머지 부분도 template에 있는 정보로 교체
타워 업그레이드
TowerSpawner수정
![](https://velog.velcdn.com/images/su1433/post/4c2bf63f-8c28-42ab-b260-559385877760/image.png)
- towerWeapon이 playergold정보를 가지고 있어야 업그레이드 가능
- weapon에 전달
TowerWeapon 수정
![](https://velog.velcdn.com/images/su1433/post/30c8a989-e74e-444e-ae2d-72ae3ed5f611/image.png)
- 외형 변경을 위한 spriteRenderer와 골드 정보를 위한 playerGold 변수 설정
- 최대 레벨 프로퍼티 설정
![](https://velog.velcdn.com/images/su1433/post/f4db0e8c-7ae0-4353-a077-9c27521d5bef/image.png)
- setup함수에 playerGold와 spriteRenderer 추가
![](https://velog.velcdn.com/images/su1433/post/d55aeeca-4055-44b9-b363-cb730c9a3885/image.png)
TowerDataViewer 수정
![](https://velog.velcdn.com/images/su1433/post/81ffb8ea-99a1-4448-bd58-aa41e9570628/image.png)
![](https://velog.velcdn.com/images/su1433/post/df26fe9d-85ec-4500-8e43-651f754fb142/image.png)
![](https://velog.velcdn.com/images/su1433/post/d9d4cd49-c170-4575-8055-1f7dc8fc9d10/image.png)
- 버튼을 클릭하여 타워 업그레이드 할 수 있도록 설정
- 공격 주변 범위도 수정
업그레이드 버튼 수정
![](https://velog.velcdn.com/images/su1433/post/ecd3ee5f-6522-4617-b15e-b09f891d06c4/image.png)
- towerpanel을 넣고 onclick컴포넌트에 onclik~~메서드로 넣는다
![](https://velog.velcdn.com/images/su1433/post/8427e8b8-0e6c-42b9-ba45-ae34c11bda62/image.png)
- paneltower에 button 오브젝트 넣는다