본문 바로가기

코딩 공부/Unity C#

마우스 입력으로 테디(오브젝트) 파괴하기

3가지 색상의 테디를 무작위로 생성한다

오른쪽 마우스 버튼을 누르면 노란색이 모두 파괴

왼쪽 마우스 버튼을 누르면 초록색이 모두 파괴

중앙 마우스 버튼을 누르면 보라색이 모두 파괴

 


Main Camera에 부착된 컴포넌트

- 단일 게임 오브젝트 씬에 여러 개의 스크립트를 부착할 수 있다

 

teddyColor 스크립트

- 색깔을 구별하기 위한 스크립트

BlowingupTeddies 스크립트

- type object에 있는 find 메서드는 느림
- 그래서 테디 폭발 시 사용하는 입력이 있을 때만 메서드를 호출한다(if 조건문 참고)
- 기존 리스트에 있는 테디 오브젝트를 모두 삭제(오로지 현재 게임에 있는 오브젝트만 리스트에 추가함)

- 현재 게임에 존재하는 오브젝트를 리스트에 추가한다

- AddRange 메서드는 리스트에 여러 요소를 한꺼번에 추가할 때 사용. 다른 컬렉션(배열, 리스트 등)에서 요소들을 가져와 현재 리스트의 끝에 모두 추가한다

 

- 입력에 따라서 파괴해야할 오브젝트의 색을 구분한다

- 같은 프레임, 동시에 여러 입력을 처리할 수 있도록 다 if문으로 설정한다

- 게임 오브젝트를 리스트에서 제거하는 과정이기 때문에 역방향 루프를 사용한다

- 스프라이트 컴포넌트를 렌더링하고,

컴포넌트가 존재하면 스프라이트의 색깔이 오브젝트의 설정색과 같은지 if문으로 확인한다

(메인 카메라를 날리는 것도 아니고, 메인 카메라에는 스프라이트 렌더러가 없기 때문)

- 폭발 오브젝트를 인스턴스화하고 테디베어 오브젝트를 파괴한다