이번에는 적을 생성하고 포탄을 맞으면 제거되며 오브젝트를 생성하는 것을 해보겠습니다.




먼저 적의 오브젝트를 생성하고 Tag에 적(Enemy)을 추가하고 적용해줍니다.




Tag를 추가하고 적용하는방법은 아래와 같습니다.





     







오브젝트를 생성 후 중요한 개체들은 오브젝트명과 Tag를 바로바로 설정해주시면 나중에 혼동되지 않습니다.





플레이어와 에너미 모두 중력,무게 등을 위하여 Rigid Body를 추가하여 주시고




충돌 처리를 위하여 Box Collider를 추가하여 줍니다.




Box Collider를 추가하는 방법은 Rigid Body와 동일합니다.





Add Component > Physics > Box Collider









Box Collider 를 추가하면 충돌크기가 오브젝트의 크기에 맞게 맞춰지지 않습니다.




      





Box Collider의 Edit Collider를 체크하시면 오른쪽 탱크의 사진과 같이 초록색으로 박스모양이 생기는데 크기를



조절하시면 됩니다.


   


탱크에 Box Collider를 생성할 경우 총알을 발사할때 총알과의 충돌이 일어납니다. 이를 방지하기위해




Tag를 지정해준것처럼 Layer를 추가해줍니다.








Layer는 Tag 옆에있습니다.




탱크와 총알을 추가해서 각각 지정해줍시다.




Layer간의 충돌처리 관리는



edit > Project Settings > Physics 에서 할수있습니다.








빨간 네모칸으로 되어있는 Bullet / Tank 의 체크를 풀어주시면 탱크와 불렛간에는 충돌이 발생하지 않습니다.




이제 적과의 충돌처리하고 적이 사라지며 오브젝트가 생성되는것을 만들어 보도록 하겠습니다.





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void OnCollisionEnter(Collision _col)
    {
        if (_col.gameObject.tag == "Enemy")
        {
            Destroy(_col.gameObject);
            // 적 제거
            Destroy(gameObject);
            // 총알 제거
 
            for (int i = 0; i < 100; i++)
            {
                GameObject ins = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                // 오브젝트 생성
                ins.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
                // 오브젝트 크기조절
                ins.transform.position = transform.position;
                // 오브젝트 위치를 총알위치로 지정
                ins.AddComponent<Rigidbody>();
                // 오브젝트에 Rigidbody 추가
 
                Destroy(ins, Random.Range(510));
                // 5~10초 후 오브젝트 제거
            }
        }
    }






스크립트는 총알에 추가하시면 됩니다.











Asset Store 에서 좀비하나가져와서 Enemy로 지정하여 적용한 모습입니다.

'프로그래밍 > Unity3D' 카테고리의 다른 글

UI (User Interface) 만들기  (0) 2016.06.22
포(총알) 발사하기  (0) 2016.06.20
Rigid Body  (0) 2016.06.20
탱크(오브젝트) 관절별로 움직이기  (0) 2016.06.20
간단한 움직임 표현하기  (0) 2016.06.15