Unity에서 대포 게임을 만드는 방법

Unity에서 대포 게임을 만드는 것은 게임 개발의 기본 사항을 배울 수 있는 좋은 방법입니다. 이 튜토리얼에서는 플레이어가 대포를 조준하고 발사하여 목표물을 맞출 수 있는 간단한 게임을 만들어 보겠습니다. 프로젝트 설정, 대포 생성 및 제어, 타겟 추가에 대해 다루겠습니다.

1단계: 프로젝트 설정

먼저 Unity을 열고 새 2D 프로젝트를 만듭니다. 프로젝트 이름을 "CannonGame"으로 지정하세요. 프로젝트가 생성되면 기본 Unity 편집기 창에 있게 됩니다.

2단계: 대포 만들기

대포를 시각적으로 표현해야 합니다. 대포 역할을 할 간단한 직사각형 스프라이트를 만들 수 있습니다. 이것을하기 위해:

  1. Hierarchy 창을 마우스 오른쪽 버튼으로 클릭하고 Createempty를 선택합니다. 이름을 "Cannon"로 지정하세요.
  2. "Cannon" 객체를 마우스 오른쪽 버튼으로 클릭하고 2D Object -> Sprite를 선택합니다. 이름을 "CannonSprite"로 지정하세요.
  3. 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단계: 캐논볼 만들기

대포를 발사하려면 대포알을 만들어야 합니다. 방법은 다음과 같습니다.

  1. Hierarchy 창을 마우스 오른쪽 버튼으로 클릭하고 2D Object -> Sprite를 선택합니다. 이름을 "Cannonball"로 지정하세요.
  2. Inspector 창에서 Sprite 필드를 클릭하고 포탄에 대한 스프라이트를 선택합니다.
  3. 구성 요소 추가를 클릭하고 Rigidbody2D를 선택하여 Rigidbody2D 구성 요소를 포탄에 추가합니다.
  4. 구성 요소 추가를 클릭하고 CircleCollider2D를 선택하여 CircleCollider2D 구성 요소를 대포알에 추가합니다.

다음으로 Hierarchy의 대포알을 Assets 폴더로 드래그하여 프리팹을 만듭니다. 이 구조물은 대포가 대포알을 발사하는 데 사용됩니다.

CannonController 스크립트(Cannon 개체에 첨부됨)의 Inspector 창에서 CannonballPrefab 필드를 cannonball 프리팹으로 설정합니다.

4단계: 대상 생성

플레이어가 쏠 수 있는 몇 가지 대상을 추가해 보겠습니다.

  1. Hierarchy 창을 마우스 오른쪽 버튼으로 클릭하고 2D Object -> Sprite를 선택합니다. 이름을 "Target"로 지정하세요.
  2. Inspector 창에서 Sprite 필드를 클릭하고 대상에 대한 스프라이트를 선택합니다.
  3. Add Component를 클릭하고 BoxCollider2D를 선택하여 BoxCollider2D 구성 요소를 대상에 추가합니다.

대상을 마우스 오른쪽 버튼으로 클릭하고 Duplicate를 선택하여 대상을 복제합니다. 화면 주위에 대상을 배치합니다.

5단계: 충돌 처리

우리는 포탄이 목표물에 부딪힐 때 어떤 일이 발생하는지 처리해야 합니다. 이를 관리하려면 "Target"라는 스크립트를 만듭니다.

  1. Assets 폴더를 마우스 오른쪽 버튼으로 클릭하고 Create -> C# Script를 선택한 후 이름을 "Target"로 지정합니다.
  2. 스크립트를 두 번 클릭하여 코드 편집기에서 엽니다.
// Target.cs
using UnityEngine;

public class Target : MonoBehaviour
{
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("Cannonball"))
        {
            Destroy(gameObject);
        }
    }
}

모든 대상 개체에 대상 스크립트를 연결합니다. 대포알 구조물에 "Cannonball" 태그가 있는지 확인하세요.

결론

이 단계를 따르면 Unity에 간단한 대포 게임이 만들어졌습니다. 프로젝트를 설정하고, 대포를 생성 및 제어하고, 타겟을 추가하는 방법을 배웠습니다. 이 프로젝트는 객체 생성, 사용자 입력, 물리학, 충돌 감지 등 기본적인 게임 개발 개념을 다룹니다. 점수, 레벨, 다양한 유형의 목표와 같은 기능을 추가하여 이 게임을 더욱 향상시킬 수 있습니다. Unity에 대해 재미있게 실험하고 자세히 알아보세요!