자 이번 포스팅에서는 장애물들을 설정하고 마무리하도록 하겠습니다.
장애물을 배치하는 것은 간단합니다.
하이라키 탭에서 3D Object > Cube 이름을 Obstacle로 설정해 주시고, 프로젝트 탭에서 Create > C# Script 선택, 이름을 역시 Obstacle로 설정하겠습니다.
Obstacle에 들어갈 스크립트는 아래와 같습니다.
1 2 3 4 5 6 7 8 9 10 11 | public class Obstacle : MonoBehaviour { private int hp = 1; void OnDamage(int damage){ hp = hp - damage; if (hp <= 0) { Destroy (gameObject); return; } } } tistory.hanorange.com | cs |
Obstacle 오브젝트는 1 만큼의 hp를 가지고 있으며 피격시 OnDamage함수가 실행되어 damage만큼 hp가 깎이게 됩니다.
hp가 0이하가 되면 큐브가 없어지게 되죠.
OnDamage 함수는 저번시간에 작성했던 Bullet 오브젝트의 컴포넌트인 Fire.cs 스크립트에 있습니다. 잠깐 가져와 볼까요?
1 2 3 | if(Physics.Raycast(레이캐스트 설정)){ hit.collider.SendMessage("OnDamage", 1, 메세지 옵션); } tistory.hanorange.com | cs |
Raycast로 광선을 쏘았을 때 맞는 오브젝트가 있다면 그 오브젝트가 hit되었을 때 OnDamage함수를 발동시키라는 내용입니다. 데미지는 명시된 1 만큼 전달됩니다.
이제 Obstacle에 스크립트와 물리적 요소를 추가하기 위한 Rigidbody를 넣어주시고, Obstacle의 크기를 2, 2, 2로 키워주겠습니다.
Obstacle 을 배치할 시간입니다. 하지만 배치하기에는 땅이 너무 좁네요.
Plane의 크기를 4, 4, 4로 늘려줍시다.
이제 하이라키 탭에서 Obstacle 을 Plane의 자식으로 넣어서, 맵과 함께 움직이도록 설정하겠습니다.
그 뒤에 Obstacle을 선택한 뒤 Ctrl+c, Ctrl+v 로 복붙해서 맵에 10개 정도만 만들어주겠습니다. ( Ctrl+d 를 누르면 더 빨라요! )
잘 따라오셨나요?
자, 실행해 봅시다!
정상적으로 잘 플레이되네요.
여기까지 잘 따라오셨으면 게임은 완성입니다! 수고하셨습니다. 👏👏👏
오류가 나거나, 이해가 안되는 부분은 댓글 달아주시면 답해드리도록 하겠습니다!
※ 다음 포스팅에서는 외전으로 어떻게 두명이서 플레이할 수 있는지에 대해 알아보도록 하겠습니다.
'코딩을 배우자 > C#으로' 카테고리의 다른 글
[Unity] 탑다운 뷰 슈팅게임 만들기 (2) (0) | 2017.12.03 |
---|---|
[Unity] 탑다운 뷰 슈팅게임 만들기 (1) (0) | 2017.12.03 |