본문 바로가기
유니티/모바일 터치 게임 만들기

모바일 터치 게임 만들기 #1 – 프로젝트 설정 및 기본 시스템 구축

by 찡사랑방 2024. 11. 22.
728x90
728x90

이번 포스팅부터 Unity를 사용해 간단한 모바일 터치 게임을 만들어보겠습니다.
목표는 플레이어가 화면을 터치해서 풍선을 터뜨리는 게임입니다. 총 10단계로 구성하며, 점점 어려워지는 난이도를 구현합니다. 오늘은 Unity 프로젝트 설정부터 기본 터치 시스템까지 작업해 보겠습니다.


1. Unity 프로젝트 생성

1.1 Unity 프로젝트 설정

  1. Unity Hub를 실행하고, New Project를 선택합니다.
  2. Template: 2D를 선택합니다.
  3. 프로젝트 이름: TouchGame
  4. 저장 경로를 선택하고 Create Project를 클릭합니다.

1.2 모바일 빌드를 위한 설정

  1. File > Build Settings로 이동합니다.
  2. Platform에서 Android 또는 iOS를 선택한 후 Switch Platform을 클릭합니다.
    • Android: Unity의 SDK NDK, JDK가 설치되어 있어야 합니다.
    • iOS: Mac 환경에서 Xcode가 필요합니다.
  3. Resolution and Presentation
    • Edit > Project Settings > Player로 이동하여 기본 해상도를 설정합니다.
      • Android/iOS에서 적합한 화면 비율로 설정(예: 1080x1920, Portrait).

2. 기본 씬 구성

2.1 배경 추가

  1. Assets 폴더에서 Create > Sprites > Square를 클릭하여 기본 배경을 생성합니다.
  2. Scene 뷰에서 Square를 선택하고, 크기를 조절해 화면 전체를 덮도록 설정합니다.
    • 색상: Inspector > Sprite Renderer > Color에서 원하는 색상(예: 파란색)으로 변경합니다.
    • 이름: Background.

2.2 터치 가능한 풍선 생성

  1. Assets > Sprites 폴더에 풍선 이미지를 추가합니다.
    • 인터넷에서 간단한 풍선 이미지를 다운로드하거나, Unity의 기본 원형 Sprite를 사용합니다.
    • 이름: Balloon.
  2. Hierarchy에서 Create > 2D Object > Sprite로 풍선 오브젝트를 생성합니다.
    • 이름: Balloon.
    • Inspector에서 Sprite Renderer Sprite를 풍선 이미지로 설정합니다.
    • 크기: Transform의 Scale 값을 조정해 적당한 크기로 만듭니다(예: 0.5, 0.5).

2.3 UI 추가

  1. Canvas를 생성합니다:
    • Hierarchy > Create > UI > Canvas 선택.
  2. 점수 텍스트:
    • Hierarchy > Canvas에서 **Right-click > UI > Text (TextMeshPro)**를 생성.
    • 이름: ScoreText.
    • 텍스트 내용: "Score: 0".
    • 위치: 화면 상단 중앙에 배치.

3. 터치 시스템 구현

3.1 스크립트 추가

  1. Assets > Scripts 폴더를 생성합니다.
  2. BalloonBehavior.cs라는 새 스크립트를 추가하고 아래 코드를 작성합니다
using UnityEngine;

public class BalloonBehavior : MonoBehaviour
{
    public int scoreValue = 10; // 풍선을 터뜨리면 얻는 점수
    private ScoreManager scoreManager;

    void Start()
    {
        // ScoreManager를 찾습니다.
        scoreManager = FindObjectOfType<ScoreManager>();
    }

    void OnMouseDown()
    {
        // 터치되면 점수 추가 후 오브젝트 삭제
        scoreManager.AddScore(scoreValue);
        Destroy(gameObject);
    }
}

 

3.2 점수 관리 스크립트

  1. ScoreManager.cs라는 새 스크립트를 작성합니다
using UnityEngine;
using TMPro;

public class ScoreManager : MonoBehaviour
{
    public int score = 0;
    public TextMeshProUGUI scoreText;

    public void AddScore(int value)
    {
        score += value;
        UpdateScoreText();
    }

    void UpdateScoreText()
    {
        scoreText.text = "Score: " + score;
    }
}

 

2. ScoreManager를 빈 GameObject에 추가:

  • Hierarchy > Create > Empty Object를 클릭.
  • 이름: ScoreManager.
  • ScoreManager.cs를 드래그해 추가.
  • Score Text 필드에 ScoreText를 드래그하여 연결.

4. 풍선 자동 생성 시스템

4.1 풍선 스포너 스크립트

  1. BalloonSpawner.cs라는 스크립트를 생성합니다
using UnityEngine;

public class BalloonSpawner : MonoBehaviour
{
    public GameObject balloonPrefab;
    public float spawnInterval = 1.5f;

    private float timer;

    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= spawnInterval)
        {
            SpawnBalloon();
            timer = 0;
        }
    }

    void SpawnBalloon()
    {
        float xPosition = Random.Range(-2.5f, 2.5f); // 화면 너비에 맞춰 범위 조정
        float yPosition = -5f; // 화면 아래에서 생성
        Vector3 spawnPosition = new Vector3(xPosition, yPosition, 0);

        Instantiate(balloonPrefab, spawnPosition, Quaternion.identity);
    }
}

 

 

    2. Hierarchy에서 빈 오브젝트를 생성하고 이름을 BalloonSpawner로 설정

    3. BalloonSpawner.cs를 추가하고, Balloon Prefab 필드에 풍선 오브젝트를 연결.


5. 테스트 및 조정

  1. Play 모드 실행
    • 풍선이 일정 간격으로 화면 아래에서 생성되고, 터치하면 사라지며 점수가 증가해야 합니다.
  2. 조정
    • 풍선 크기, 속도, 생성 간격 등을 조정해 난이도를 테스트합니다.

6. 다음 단계 예고

첫 번째 단계로, 터치를 통해 풍선을 터뜨리고 점수를 얻는 시스템을 구축했습니다. 🎉
다음 포스팅에서는 풍선의 이동 및 제거 로직을 구현하고, 게임 오버 시스템을 추가할 예정입니다.

지금까지 만든 게임을 조금씩 확장하며 모바일 게임 개발의 기초를 익혀보세요! 🕹️

728x90