1. 적기체 스폰위치 추가
(1) - 적기체 스폰위치가 담겨있는 배열의 사이즈를 4개 늘리고 좌측 2개 우측2개 총 4개(spawnPos6 ~ 9)의 오브젝트
를 생성하고 위치정보를 담은 배열에 추가로 드래그 앤 드랍 해준다
(2) - 추가된 위치에서 기체가 생성되며 대각선방향으로 날아오도록 코드를 구현한다
*Random.Range(0,9)를 변수에 담으면 int 0 부터 8을 반환한다
*instantiate로 생성된 프리팹을 변수에 담으면 생성된 GameObject가 반환된다
*transform.rotation = Quaternion.Euler(x축 rotation각도, y축 rotation각도, z축 rotation각도)는 해당오브젝트를
회전 시켜준다
2.플레이어 총알 프리팹을 복사해서 적기체 총알 프리팹으로 수정하기
(1) - BulletB 프리팹을 Ctrl+D 로 복사하고 복사한 BulletB1프리팹의 속성에서 Open Prefab을 열어준다
(2) - 이 후 이름과 스프라이트등을 바꿔주고 변경한 후 상단에 Senes를 클릭하면 저장되며 새로운 프리팹으로 생성되 고 원래 Senes으로 돌아온다
- 그리고 tag명을 Enemy_Bullet으로 바꿔준다(안바꿔 주면 적기체가 총알을 생성하자마자 지가 맞고 사라짐)
- Is Trigger도 체크해준다
3.적기체가 플레이어에게 총알 쏘기
(1) - GameManiger스크립트 구현
*프리팹에 public GameObject gameobject; 를 선언한다고해서 아직 계층구조창에 존재하지 않고 Assets폴더에
존재하는 프리팹의 비어있는 gamobject 속성에 계층구조창에 존재하는 오브젝트를 드래그앤 드랍할 수 없다
(단!, 프리팹의 public으로 비어있는 공간에 프리팹을 드래그 앤 드랍할 수는 있다! 즉, 적기체 프리팹에
총알 프리팹을 넣는것은 가능한다)
*따라서 적기체 프리팹스크립트에 플레이어의 오브젝트 정보를 가져오려면 게임매니져스크립트에서 적기체
오브젝트를 생성할때 계층구조에 생성된 적기체오브젝트로 플레이어 오브젝트 정보를 보내줘야한다
GamManiger스크립트에서 public한 PlayerObj를 채워준다
(2) - Enemy 스크립트 구현
*플레이어 방향을가르키는 벡터를 꼭 Vector3에 담아서 변수화 하여 사용해준다(직접 대입하면 방향정보가 제대로 읽히지 않는듯 하다..)
- public된 Enemy_bulletA와 B 그리고 Delay를 채워준다(Delay값을 안채줘주면 기체자체가 나오자마자 사라짐..)
(3) - 적기체 프리팹에 public으로 enemyName을 지정해주고 기체마다 다른 총알이 나가도록 Enemy스크립트 구현
'Unity > Unity2D_Shooting' 카테고리의 다른 글
Unity2D_Shooting - UI기본셋팅 및 스코어 Text에 표시하기 (0) | 2021.01.16 |
---|---|
Unity2D_Shooting - 적기체에 맞았을때 리스폰, 리스폰 무적효과 (0) | 2021.01.15 |
Unity2D_Shooting - 적 비행기 구현, 랜덤생성 (0) | 2021.01.12 |
Unity2D_Shooting - 총알 발사 딜레이 및 총알 파워업 구현 (0) | 2021.01.11 |
Unity2D_Shooting - 총알 발사 구현 (0) | 2021.01.07 |