주녘공부일지

[ShootingGame] 3. 적 비행기 만들기 본문

GameDevelopment/[Unity] Lecture

[ShootingGame] 3. 적 비행기 만들기

주녘 2022. 1. 27. 17:50

 

 

Scripts.zip
0.00MB

 

 

0. 준비하기

class Enemy

- 적 기체 L, M, S 타입 설정

- 기본 상태와 피격상태는 배열로 스프라이트를 가짐

- L (BoxCollider2D), M (Polygon Collider2D), S (CircleCollider2D)

 

Polygon Collider2D 영역 변경 전 - 후

 

Sprite Editor - Custom Physics Shape - Generate 클릭 - Polygon Collider 영역 수정 가능

 

SpawnPoints Group

- 빈 오브젝트는 태그 아이콘으로 위치 확인 가

능 // Scene에서만 확인할 수 있는 아이콘

 + Scene의 상단에 있는 메뉴에서 Gizmos의 최상단의 3D Icons 체크박스가 해제되어 있어야 표시됨

 

 

1. 적 기체 프리팹

 

class Enemy

 

- 피격 시 실행되는 OnHit 함수, 매개변수로 데미지를 받음 + 피격 이미지

  Invoke 함수로 기본 이미지 변경 딜레이를 주어 피격을 나타냄

 ( 딜레이를 주지 않으면 너무 빠르게 처리되기 때문에, 육안으로 이미지가 변경되는 것이 보이지 않는다. )

- 만약 체력이 0이 되면, Destroy(gameObject) // 파괴

 

class Enemy

 

- 적 기체들이 총알이 사라지는 경계에 닿으면 총알과 마찬가지로 객체를 파괴

- 만약 플레이어의 총알에 맞으면 OnHit() 호출하고 총알 객체를 파괴

( collision 은 OnTriggerEnter2D 함수의 매개변수로, 트리거에 닿은 오브젝트의 Collider2D )

 

 

2. 적 생성

- GameManager는 아이콘이 자동으로 변경되는데. 그냥 아이콘만 변함 ( 그냥... 변함 )

 

class GameManager

 

- 생성할 프리팹 ( 적 기체 프리팹 )을 가지고 있을 enemyObjs 와 생성시킬 위치를 가지고 있을 spawnPoints 를 선언

- Random.Range(값부터, 값까지) 랜덤

 

class GameManager - SpawnEnemy()

 

- 랜덤으로 생성할 적 기체를 지정하고 생성할 위치도 랜덤으로 설정 한 후 Instantiate()함수로 적 기체 생성

 

 

https://github.com/godgjwnsgur7/ShootingGame

 

GitHub - godgjwnsgur7/ShootingGame

Contribute to godgjwnsgur7/ShootingGame development by creating an account on GitHub.

github.com

 

강의 출처

https://www.youtube.com/watch?v=lKFka1regy8&list=PLO-mt5Iu5TeYtWvM9eN-xnwRbyUAMWd3b&index=3