Unity에서 대포 게임을 만드는 방법
Unity에서 대포 게임을 만드는 것은 게임 개발의 기본 사항을 배울 수 있는 좋은 방법입니다. 이 튜토리얼에서는 플레이어가 대포를 조준하고 발사하여 목표물을 맞출 수 있는 간단한 게임을 만들어 보겠습니다. 프로젝트 설정, 대포 생성 및 제어, 타겟 추가에 대해 다루겠습니다.
1단계: 프로젝트 설정
먼저 Unity을 열고 새 2D 프로젝트를 만듭니다. 프로젝트 이름을 "CannonGame"으로 지정하세요. 프로젝트가 생성되면 기본 Unity 편집기 창에 있게 됩니다.
2단계: 대포 만들기
대포를 시각적으로 표현해야 합니다. 대포 역할을 할 간단한 직사각형 스프라이트를 만들 수 있습니다. 이것을하기 위해:
- Hierarchy 창을 마우스 오른쪽 버튼으로 클릭하고 Createempty를 선택합니다. 이름을 "Cannon"로 지정하세요.
- "Cannon" 객체를 마우스 오른쪽 버튼으로 클릭하고 2D Object -> Sprite를 선택합니다. 이름을 "CannonSprite"로 지정하세요.
- Inspector 창에서 Sprite 필드를 클릭하고 대포에 대한 스프라이트를 선택합니다.
Transform 컴포넌트에서 대포의 위치를 (0, -4, 0)으로 설정하여 화면 하단에 대포를 배치합니다.
이제 대포를 제어하는 스크립트를 만듭니다. Assets 폴더를 마우스 오른쪽 버튼으로 클릭하고 Create -> C# Script를 선택한 후 이름을 "CannonController"으로 지정합니다. 스크립트를 두 번 클릭하여 코드 편집기에서 엽니다.
// CannonController.cs
using UnityEngine;
public class CannonController : MonoBehaviour
{
public GameObject cannonballPrefab;
public float shootForce = 700f;
void Update()
{
Aim();
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
void Aim()
{
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
transform.up = direction;
}
void Shoot()
{
GameObject cannonball = Instantiate(cannonballPrefab, transform.position, transform.rotation);
Rigidbody2D rb = cannonball.GetComponent();
rb.AddForce(transform.up * shootForce);
}
}
3단계: 캐논볼 만들기
대포를 발사하려면 대포알을 만들어야 합니다. 방법은 다음과 같습니다.
- Hierarchy 창을 마우스 오른쪽 버튼으로 클릭하고 2D Object -> Sprite를 선택합니다. 이름을 "Cannonball"로 지정하세요.
- Inspector 창에서 Sprite 필드를 클릭하고 포탄에 대한 스프라이트를 선택합니다.
- 구성 요소 추가를 클릭하고 Rigidbody2D를 선택하여 Rigidbody2D 구성 요소를 포탄에 추가합니다.
- 구성 요소 추가를 클릭하고 CircleCollider2D를 선택하여 CircleCollider2D 구성 요소를 대포알에 추가합니다.
다음으로 Hierarchy의 대포알을 Assets 폴더로 드래그하여 프리팹을 만듭니다. 이 구조물은 대포가 대포알을 발사하는 데 사용됩니다.
CannonController 스크립트(Cannon 개체에 첨부됨)의 Inspector 창에서 CannonballPrefab 필드를 cannonball 프리팹으로 설정합니다.
4단계: 대상 생성
플레이어가 쏠 수 있는 몇 가지 대상을 추가해 보겠습니다.
- Hierarchy 창을 마우스 오른쪽 버튼으로 클릭하고 2D Object -> Sprite를 선택합니다. 이름을 "Target"로 지정하세요.
- Inspector 창에서 Sprite 필드를 클릭하고 대상에 대한 스프라이트를 선택합니다.
- Add Component를 클릭하고 BoxCollider2D를 선택하여 BoxCollider2D 구성 요소를 대상에 추가합니다.
대상을 마우스 오른쪽 버튼으로 클릭하고 Duplicate를 선택하여 대상을 복제합니다. 화면 주위에 대상을 배치합니다.
5단계: 충돌 처리
우리는 포탄이 목표물에 부딪힐 때 어떤 일이 발생하는지 처리해야 합니다. 이를 관리하려면 "Target"라는 스크립트를 만듭니다.
- Assets 폴더를 마우스 오른쪽 버튼으로 클릭하고 Create -> C# Script를 선택한 후 이름을 "Target"로 지정합니다.
- 스크립트를 두 번 클릭하여 코드 편집기에서 엽니다.
// Target.cs
using UnityEngine;
public class Target : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Cannonball"))
{
Destroy(gameObject);
}
}
}
모든 대상 개체에 대상 스크립트를 연결합니다. 대포알 구조물에 "Cannonball" 태그가 있는지 확인하세요.
결론
이 단계를 따르면 Unity에 간단한 대포 게임이 만들어졌습니다. 프로젝트를 설정하고, 대포를 생성 및 제어하고, 타겟을 추가하는 방법을 배웠습니다. 이 프로젝트는 객체 생성, 사용자 입력, 물리학, 충돌 감지 등 기본적인 게임 개발 개념을 다룹니다. 점수, 레벨, 다양한 유형의 목표와 같은 기능을 추가하여 이 게임을 더욱 향상시킬 수 있습니다. Unity에 대해 재미있게 실험하고 자세히 알아보세요!