본문 바로가기

기타/패스트캠퍼스 Unity

유니티 입문 패스트캠퍼스 챌린지 20일차

적비행기 총알 발사와 충돌 감지 (1)

Enemy Bullet 프리팹 만들기

- Bullet 프리팹 복제 후 이름 수정

- 총알 방향에 맞게 회전 후 위치 조정

- Layer 설정 수정

- 총알 Material 복제 후 색상 수정

- 복제된 Enemy Bullet에 복제된 Material 설정

 

 이전시간에 만든 Bullet 프리팹을 Ctrl+D로 복제를 하고 EnemyBullet으로 이름을 변경한다. MeshRenderer의 BulletMat을 또 복제해서 EnemyBulletMaterial을 만든다. 적 총알의 색상은 좀더 붉은색으로 변경한다. 그리고 방향을 180도 돌려서 변경한다, 왜냐하면 적은 반대방향에서 등장하기 때문이다. 그리고 X좌표를 마이너스에서 플러스로 부호를 바꾼다. (꼭지점이 0,0,0에 위치하기를 원하므로)

 

적비행기 총알 발사와 충돌 감지 (2)

- 총알 변수 추가

- 총구 발사 위치 변수 추가

- 총알 생성 및 발사 처리 추가

- Battle 상태 처리 수정

 

Enemy.cs 스크립트도 수정이 필요하다.

[SerializeField]
Transform FireTransform;

[SerializeField]
GameObject Bullet;

[SerializeField]
float BulletSpeed = 1;

Player와 마찬가지로 유니티 인스펙터를 통해 위의 정보를 받도록 해야한다. (복사해와서 붙여넣자)

 

 

    public void Fire()
    {
        GameObject go = Instantiate(Bullet);

        Bullet bullet = go.GetComponent<Bullet>();
        bullet.Fire(OwnerSide.Enemy, FireTransform.position, -FireTransform.right, BulletSpeed);
    }

Fire 메서드도 복사해오도록 한다. 방향이나 발사정보는 약간 수정이 필요하다.

 

 

적비행기 총알 발사와 충돌 감지 (3)

- Enemy Bullet 프리팹 링크

- 총구 발사 위치 추가 및 링크

 

적 비행기의 총구 위치를 지정하는 중

 

Player의 총알을 링크할때와 거의 같은 방식으로 프리팹을 수정했다.

 

하지만 지금 적은 등장하고 3초간 유지하고있다가 퇴장하는데 총알을 발사하고나서 퇴장하게 수정을 했다.

 

 

총알 마무리

 

충돌하지 않은 총알은 어떻게 처리할까?

- 일정한 범위를 벗어나면 없어지도록 처리

- 일정한 시간이 지나면 없어지도록 처리

 

총알이 발사된지 15초가 넘으면 사라지도록하거나, 현재 보이는 화면을 벗어나서 일정 지점에 도달하면 사라지도록 처리하였다.

 

https://fastcampus.co.kr/dev_online_game

 

C#과 유니티로 배우는 게임 개발 올인원 패키지 Online. | 패스트캠퍼스

현직 게임업계 게임 개발자 직강 C# 프로그래밍부터 게임 물리와 수학까지 모두 정복!

fastcampus.co.kr

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.