★ 학습 목표 ★
1. 네모 박스 중력 기능 및 충돌 기능 추가하기
2. 풍선과 실드 충돌 기능 추가하기
3. 네모 박스 랜덤으로 생성하고 무한으로 복제하기
1. 네모 박스 만들기
: Hierarchy → Sprite → Square (파일명 : square) 생성
2. 중력 기능 및 충돌 기능 추가하기
: 네모 박스가 하늘에서 떨어지면서 풍선과 실드에 충돌했다는 것을 알아야 하기 때문에 해당 기능을 추가한다.
1) 중력 기능 추가하기
: square(네모 박스) Inspector 에서 Add Component 를 이용하여 중력 기능을 추가한다.
※ 중력 기능 : Rigidbody 2D
2) 충돌 기능 추가하기
: square(네모 박스) 에 충돌 기능 Box Collider 2D 를 추가한다.
: balloon(풍선) 과 shield(실드) 에 충돌 기능 Circle Collider 2D 를 추가한다.
3. 네모 박스 랜덤으로 생성하기
Think! 구현 시나리오 생각해보기
1. GameManager 로 Instatiate로 GameObject 를 복제할 수 있다.
2. square Sprite 를 Prefab 으로 만들어 GameManager 에서 관리 할 수 있게 해야 한다.
3. Random.Range 를 void Start 에서 설정해야 한다.
4. localScale 로 네모 박스의 크기를 랜덤으로 설정해야 한다.
1) GameManager 만들기
: Hierarchy → Create Empty 생성 (파일명 : gameManager)
2) C# Script 만들기
: Project → C# Script (파일명 : gameManager) 와 C# Script (파일명 : square) 를 생성
: 생성한 gameManager Script 를 Hierarchy 에 있는 gameManager 에게 드래그하여 추가한다.
: 생성한 square Script 를 Hierarchy 에 있는 square Sprite 에 드래그하여 추가한다.
3) 네모 박스 위치 랜덤으로 생성하기
: 네모 박스의 위치를 랜덤으로 설정하여 생성되게 하기 위해서는 코드를 작성해야 한다.
[square C# Script]
void Start( ) { float x = Random.Range(-3.0f, 3.0f); float y = Random.Range(3.0f, 5.0f); transform.position = new Vector3(x, y, 0); } [설명] float x = Random.Range(-3.0f, 3.0f); : x의 위치를 -3 ~ 3 사이에 랜덤으로 설정한다. float y = Random.Range(3.0f, 5.0f); : y의 위치를 3 ~ 5 사이에 랜덤으로 설정한다. transform.position = new Vector3(x, y, 0); : transform 에 있는 position 의 x와 y값을 저장한다. |
4) 네모 박스 크기 랜덤으로 생성하기
: 네모 박스의 크기를 랜덤으로 설정하여 생성되게 하기 위해서는 코드를 작성해야 한다.
[square C# Script]
void Start( ) { float size = Random.Range(0.5f, 1.5f); transform.localScale = new Vector3(size, size, 0); } [설명] float size = Random.Range(0.5f, 1.5f); : 네모 박스의 size 를 0.5 ~ 1.5 사이에 랜덤으로 설정한다. transform.localScale = new Vector3(size, size, 0); : transform 에 있는 scale 의 값을 설정된 size 값으로 저장한다. |
4. 네모 박스 GameObject 무한으로 복제하기
1) square Sprite 를 Prefab 으로 만들기
: Project → Prefab 폴더 생성 → Hierarchy 에 있는 square Sprite 를 Prefab 폴더로 이동
2) 네모 박스 무한 복제 기능 만들기
: 네모 박스를 무한으로 복제하는 기능을 만들기 위해서는 코드를 작성해야 한다.
[gameManager C# Script]
public GameObject square; void Start ( ) { InvokeRepeating("makeSquare" , 0.0f , 0.5f); } void makeSquare ( ) { Instantiate(square); } [설명] public GameObject square; : square GameObject를 gameManager에서 사용하겠다고 선언한다. InvokeRepeating("makeSquare" , 0.0f , 0.5f); : makeSquare 라는 함수를 0.5초 단위로 계속해서 발생 시킨다. void makeSquare ( ) : square GameObject 복제 기능을 관리하는 makeSquare 라는 함수를 만든다. Instantiate(square); : square GameObject 를 복제한다는 의미이다. |
'Unity 기초' 카테고리의 다른 글
풍선을 지켜라 - 애니메이션 기능 만들기 (1) | 2024.01.04 |
---|---|
풍선을 지켜라 - 점수 저장/출력 기능 만들기 (0) | 2024.01.03 |
풍선을 지켜라 - 게임 구성 요소 만들기 (0) | 2023.12.29 |
르탄이 빗방울 게임 - 게임 끝내기 (0) | 2023.12.28 |
르탄이 빗방울 게임 - 빗방울 점수 획득하기 (0) | 2023.12.28 |