자 이번 포스팅에서는 장애물들을 설정하고 마무리하도록 하겠습니다.


장애물을 배치하는 것은 간단합니다.

하이라키 탭에서  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 를 누르면 더 빨라요! )



잘 따라오셨나요? 


자, 실행해 봅시다!



정상적으로 잘 플레이되네요.

여기까지 잘 따라오셨으면 게임은 완성입니다! 수고하셨습니다. 👏👏👏

오류가 나거나, 이해가 안되는 부분은 댓글 달아주시면 답해드리도록 하겠습니다!



※ 다음 포스팅에서는 외전으로 어떻게 두명이서 플레이할 수 있는지에 대해 알아보도록 하겠습니다.

+ Recent posts