유니티 기초 강좌: 슈팅1 – 총알을 이용한 슈팅

안녕하세요! 이번 강좌에서는 유니티(Unity)를 이용하여 간단한 슈팅 게임을 만들어 보겠습니다. 우리가 구현할 내용은 주로 “총알을 발사하는” 기능을 중심으로 진행됩니다. 필요한 기능을 차근차근 익히고, 마지막에 간단한 게임을 완성할 수 있도록 하겠습니다.

목차

  1. 유니티 설치 및 기본 설정
  2. 프로젝트 생성하기
  3. 2D 게임 환경 설정하기
  4. 총알 프리팹 만들기
  5. 캐릭터와 총알 발사 스크립트 작성하기
  6. 게임 객체 구성 및 테스트
  7. 결론

1. 유니티 설치 및 기본 설정

유니티를 설치하려면 먼저 유니티 웹사이트에서 Unity Hub를 다운로드합니다. Unity Hub를 설치한 후, 원하는 버전의 유니티 에디터를 설치합니다. 설치가 완료되면 Unity Hub를 실행하여 새로운 프로젝트를 생성할 수 있습니다.

2. 프로젝트 생성하기

Unity Hub에서 New Project 버튼을 클릭하고, 2D 템플릿을 선택합니다. 프로젝트의 이름을 ShootingGame으로 지정하고 저장할 위치를 설정한 후 Create 버튼을 눌러 프로젝트를 생성합니다.

3. 2D 게임 환경 설정하기

프로젝트가 생성되면, 유니티 에디터가 열립니다. 여기서 게임 오브젝트를 배치하고, 카메라와 배경을 설정하겠습니다.

3.1 카메라 설정하기

메인 카메라를 선택하고 뷰포트를 적절한 크기로 조정합니다. 2D 게임에서는 카메라의 ProjectionOrthographic으로 설정하는 것이 일반적입니다.

3.2 배경 추가하기

배경으로 사용할 이미지를 Assets 폴더에 추가합니다. 그런 다음 씬에 드래그하여 배치합니다. 이미지의 z축 값을 카메라보다 더 낮게 설정하여 배경이 제대로 보이도록 합니다.

4. 총알 프리팹 만들기

총알을 나타내는 간단한 스프라이트를 만들겠습니다. 총알 스프라이트를 Assets 폴더에 추가하고, 2D 오브젝트로서 씬에 배치합니다. 총알의 크기와 속성을 조정한 후, 이 오브젝트를 Prefabs 폴더로 드래그하여 프리팹으로 저장합니다.

4.1 총알 속성 설정하기

프리팹을 선택한 후 Rigidbody2D 컴포넌트를 추가합니다. 이 컴포넌트는 물리적 특성을 부여하여 총알이 자연스럽게 움직일 수 있도록 합니다. Gravity Scale 값은 0으로 설정하여 중력의 영향을 받지 않도록 합니다.

4.2 콜라이더 추가하기

총알 프리팹에 CircleCollider2D를 추가하여 충돌체를 설정합니다. 이 콜라이더는 총알이 다른 객체와 충돌하는지를 감지할 수 있게 해줍니다.

5. 캐릭터와 총알 발사 스크립트 작성하기

이제 총알 발사를 제어할 스크립트를 작성해야합니다. 캐릭터를 생성하고 총알을 발사하는 기능을 추가해보겠습니다.

5.1 캐릭터 생성하기

캐릭터로 사용할 스프라이트를 준비하고 에디터에서 씬에 추가합니다. 캐릭터에도 Rigidbody2D 컴포넌트를 추가합니다.

5.2 스크립트 작성하기

캐릭터의 스크립트를 생성합니다. 아래는 총알을 발사하기 위한 기본적인 C# 스크립트 예제입니다.


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public GameObject bulletPrefab; // 총알 프리팹
    public float bulletSpeed = 20f; // 총알 속도

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space)) // 스페이스바를 눌렀을 때
        {
            Shoot();
        }
    }

    void Shoot()
    {
        GameObject bullet = Instantiate(bulletPrefab, transform.position, Quaternion.identity);
        Rigidbody2D rb = bullet.GetComponent();
        rb.velocity = transform.up * bulletSpeed; // 총알의 방향으로 속도를 설정
    }
}

5.3 스크립트 연결하기

작성한 스크립트를 캐릭터 오브젝트에 추가하고, 인스펙터 창에서 bulletPrefab 변수를 총알 프리팹으로 설정합니다.

6. 게임 객체 구성 및 테스트

모든 구성 요소가 준비되었으니 이제 게임이 잘 작동하는지 테스트해 보겠습니다.

6.1 테스트 실행하기

게임을 실행하기 위해 플레이 버튼을 클릭합니다. 캐릭터가 스페이스바를 누르면 총알이 발사되는지 확인합니다. 필요하다면 속도나 방향을 조정해서 원하는 결과를 얻을 수 있습니다.

6.2 총알 충돌 테스트

총알이 다른 객체와 충돌했을 때의 처리를 추가하는 것도 중요합니다. 예를 들어, 총알이 적에게 닿았을 때 적이 소멸되도록 할 수 있습니다. 이를 위해 적 오브젝트의 스크립트를 작성하여 총알과의 충돌을 확인합니다.


using UnityEngine;

public class Enemy : MonoBehaviour
{
    void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.CompareTag("Bullet"))
        {
            Destroy(gameObject); // 적 오브젝트 소멸
        }
    }
}

결론

이번 강좌에서는 유니티를 사용하여 간단한 슈팅 메커니즘을 구현해 보았습니다. 총알을 발사하고, 충돌을 처리하는 기본적인 기능을 익힘으로써 게임 개발의 기초를 배우고, 더 발전된 프로그래밍을 할 수 있는 발판을 마련했습니다. 앞으로도 유니티를 통해 다양한 게임들을 만들어 보시기를 바랍니다!

이상으로 유니티 기초 강좌 – 슈팅1: 총알을 이용한 슈팅 강좌를 마칩니다. 질문이나 의견이 있으시면 아래 댓글로 남겨주세요. 감사합니다!