728x90
728x90
이번 포스팅부터 Unity를 사용해 간단한 모바일 터치 게임을 만들어보겠습니다.
목표는 플레이어가 화면을 터치해서 풍선을 터뜨리는 게임입니다. 총 10단계로 구성하며, 점점 어려워지는 난이도를 구현합니다. 오늘은 Unity 프로젝트 설정부터 기본 터치 시스템까지 작업해 보겠습니다.
1. Unity 프로젝트 생성
1.1 Unity 프로젝트 설정
- Unity Hub를 실행하고, New Project를 선택합니다.
- Template: 2D를 선택합니다.
- 프로젝트 이름: TouchGame
- 저장 경로를 선택하고 Create Project를 클릭합니다.
1.2 모바일 빌드를 위한 설정
- File > Build Settings로 이동합니다.
- Platform에서 Android 또는 iOS를 선택한 후 Switch Platform을 클릭합니다.
- Android: Unity의 SDK와 NDK, JDK가 설치되어 있어야 합니다.
- iOS: Mac 환경에서 Xcode가 필요합니다.
- Resolution and Presentation
- Edit > Project Settings > Player로 이동하여 기본 해상도를 설정합니다.
- Android/iOS에서 적합한 화면 비율로 설정(예: 1080x1920, Portrait).
- Edit > Project Settings > Player로 이동하여 기본 해상도를 설정합니다.
2. 기본 씬 구성
2.1 배경 추가
- Assets 폴더에서 Create > Sprites > Square를 클릭하여 기본 배경을 생성합니다.
- Scene 뷰에서 Square를 선택하고, 크기를 조절해 화면 전체를 덮도록 설정합니다.
- 색상: Inspector > Sprite Renderer > Color에서 원하는 색상(예: 파란색)으로 변경합니다.
- 이름: Background.
2.2 터치 가능한 풍선 생성
- Assets > Sprites 폴더에 풍선 이미지를 추가합니다.
- 인터넷에서 간단한 풍선 이미지를 다운로드하거나, Unity의 기본 원형 Sprite를 사용합니다.
- 이름: Balloon.
- Hierarchy에서 Create > 2D Object > Sprite로 풍선 오브젝트를 생성합니다.
- 이름: Balloon.
- Inspector에서 Sprite Renderer의 Sprite를 풍선 이미지로 설정합니다.
- 크기: Transform의 Scale 값을 조정해 적당한 크기로 만듭니다(예: 0.5, 0.5).
2.3 UI 추가
- Canvas를 생성합니다:
- Hierarchy > Create > UI > Canvas 선택.
- 점수 텍스트:
- Hierarchy > Canvas에서 **Right-click > UI > Text (TextMeshPro)**를 생성.
- 이름: ScoreText.
- 텍스트 내용: "Score: 0".
- 위치: 화면 상단 중앙에 배치.
3. 터치 시스템 구현
3.1 스크립트 추가
- Assets > Scripts 폴더를 생성합니다.
- 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 점수 관리 스크립트
- 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 풍선 스포너 스크립트
- 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. 테스트 및 조정
- Play 모드 실행
- 풍선이 일정 간격으로 화면 아래에서 생성되고, 터치하면 사라지며 점수가 증가해야 합니다.
- 조정
- 풍선 크기, 속도, 생성 간격 등을 조정해 난이도를 테스트합니다.
6. 다음 단계 예고
첫 번째 단계로, 터치를 통해 풍선을 터뜨리고 점수를 얻는 시스템을 구축했습니다. 🎉
다음 포스팅에서는 풍선의 이동 및 제거 로직을 구현하고, 게임 오버 시스템을 추가할 예정입니다.
지금까지 만든 게임을 조금씩 확장하며 모바일 게임 개발의 기초를 익혀보세요! 🕹️
728x90