본문 바로가기
개발자가 되어보자..공부공부/개발 일지

C# 유니티 공부 27 - 디펜스 게임(Serializable, 스플래쉬 공격, 상점 포탑 구매 등)

by 묭묭이와소담이 2022. 12. 29.
반응형

* Shop UI 만들기 

- Vertical layout Group, Hrozontal layout Group, layout element

(일정 구역 안에 오브젝트들을 규칙적으로 자동 배열 시켜주는 기능.)

- 이미지 가져와서 sprite로 만들기

(새 이미지 파일을 유니티로 가져오면 sprite화로 만들어주는 작업을 진행해야함.)

 

- 상점 내 포탑 Button 제작하고, 플레이어가 가지고 있는 Money에 따라 선택한 포탑이 설치되는 로직 구현.

1) UI로 제작한 Button에 Shop 스크립트의 SelectStandardTurret(), SelectMissleLauncher() 함수 연결.

2) 이어서 로직에 의해 buildmanager의 SelectTurretToBuild() 함수로 연결.

3) SelectTurretToBuild 함수는 blueprint 스크립트에서 선택한 포탑에 대한 데이터를 가져옴.

4) playerstats 스크립트에서 플레이어가 가진 Money 로직 작성.

5) 플레이어가 가진 Money에 따라 타워가 생성되는 로직 작성.

6) 타워가 생성되는 위치는 Node 스크립트의 GetBuildPosition 함수로부터 가져옴.

7) buildmanager 스크립트에서 포탑이 선택되었는지에 대한 bool 값 변수 생성. (속성 이용)

8) bool 값 변수에 따라, Node와 마우스의 상호작용 제어.

9) 유니티에서 public으로 선언하여 비어있는 값들 넣어주기

10) blueprint 스크립트에서 [System.Serializable]로 선언하면 해당 사진 처럼 표시됨.

 

순서대로 1), 2), 3)
4), 5), 6)
7), 8) 

 

9), 10)

* 2번째 포탑(미사일 터렛) 생성

- 미사일(bullet) 생성.

- 미사일 스플래쉬 공격 구현.

1) Physics.OverlapSphere(위치, 범위)로 충돌한 오브젝트들을 배열로 저장.

2) foreach문으로 오브젝트들 중 Enemy 태그를 가진 적에게 Damage.

3) if문으로 스플래쉬 범위가 0보다 큰 bullet에는 Explode()가 실행되도록 함.

4) 스플래쉬 범위는 int변수로 선언한 다음, 기즈모를 통해서 확인가능하도록 함.

- 미사일 폭발 이펙트 구현.

(2개의 파티클 시스템을 이용하여 불꽃과 미사일조각들을 구현.) 

반응형

댓글