게임 개발이 처음이어도 쉽게 배우는 모바일 게임 개발/Sparta_Unity

풍선을 지켜라 - 1

gaon99 2025. 1. 6. 15:43

Unity 사전캠프 2주차 목표

1. Unity 사용법 복습

2. 게임 완성해보기


목차

1. 기본 씬 구성

2. 장애물 만들기

3. 시간 구현

4. 게임 종료 패널 만들기


1. 기본 씬 구성

 

1-1 배경

Hierarchy → 2D Objects → Sprite → Square → BackGround (R G B : 20, 20, 80) Transform Scale X = 6, Y = 10

 

1-2 풍선 만들기

Hierarchy → 2D Objects → Sprite → Circle → Balloon (R G B : 0, 255, 255) Transform Position X = 0, Y = -3.2

 

1-3 Shield 생성 Hierarchy → 2D Objects → Sprite → Circle → Shield (R G B : 0, 255, 255)
Transform Scale X = 0.5 , Y = 0.5  

 

1-3 타이머 만들기

Hierarchy → UI → Legacy → Text → TimeTxt 

Font Size = 70, R G B : 255, 0, 0, Rect Transform Pos Y = 450, Width = 200, Height = 200 

1-4 애니메이션

Assets → New Folder → Animations 생성 → Create → Animation → Animation Clip → Balloon_idle

※ Loop Time 체크


Record → 0 (R G B : 255, 255, 255), 0.20 (R G B : 200, 200, 255), 0.40 (R G B : 255, 255, 255) → Record

 

2. 장애물 만들기

 

2-1 장애물 만들기

Hierarchy → 2D Objects → Sprite → Square Transform Position X = 0, Y = 3

+) Order in Layer

BackGround : 0, Square, Shield, Balloon : 1

 

2-2 중력 및 충돌 효과

Square → Add Component → RigidBody 2d, Box Collider 2D 추가

Shield, Balloon → Add Component  Circle Collider 2D 추가

 

2-3 랜덤으로 네모 생성

Assets → New Folder → Scripts 생성→ Scripts → Scripting → MonoBehaviour Script → Square 

X = -3f ~ 3f , Y = 3f ~ 5f

//Square.cs
void Start()
{
    float x = Random.Range(-3.0f, 3.0f);
    float y = Random.Range(3.0f, 5.0f);

    transform.position = new Vector2(x, y);
}

 

2-4 네모의 크기 설정

Size 0.5f ~ 1.5f

//Square.cs
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 size = Random.Range(0.5f, 1.5f);
    transform.localScale = new Vector2(size, size);
}

 

2-5 GameManager 생성

Hierarchy → Create Empty → GameManager
Assets → Scripts → GameManager.cs 생성

 

2-6 Prefabs

Assets → New Folder → Prefabs → Hierarchy에 있는 Square를 Prefabs에 넣고 Hierarchy에 있는 Square는 삭제 

2-7 Square 생성

//GameManager.cs
void Start()
{
    InvokeRepeating("MakeSquare", 0.0f, 1f); // 0초부터 1초마다 MakeSquare 함수 반복
}

void MakeSquare()
{
    Instatiate(Square);
}

 

Game Manager에 GameManager.cs 와 Prefabs에 있는 Square를 넣어준다

 

3. 시간 구현

//GameManager.cs
using UnityEngine.UI;
public Text timeTxt;
float time = 0f;

void Update()
{
    time += Time.deltaTime;
    timeTxt.text = time.ToString("N2");
}

 

4. 게임 종료 패널 만들기

 

4-1 UI - Image

Hierarchy →  Canvas → Create Empty → EndPanel 이름 변경

EndPanel → UI → Image / Width = 450, Height = 600,

Add Component → Shadow / Effect Color (R G B A : 255, 255, 0, 150), Effect Distance (X = 15, Y = -15)

 

4-2 UI - 끝, 현재,최고 스코어

 

UI → Legacy → Text 추가 후 Ctrl + D 를 눌려 4개 추가 복사

 

설정 값

 

 

4-3 Retry

UI → Legacy → Button → RetryBtn 생성 (R G B : 80, 80, 200), Width = 300, Height = 100, Pos Y = -200

 

버튼 Text

값 : 다시하기 Font Size : 50, (R G B A : 255, 255, 255, 255)

 

설정이 끝났다면 EndPanel Inactive

 


이어서

5. 게임 종료 로직

6. 최고 점수 구현

7. 풍선 애니메이션

8. 과제

9. 최종 시현 영상

10. 마무리 및 느낀점

은 다음시간에 계속 작성하겠습니다 :)