이번 강좌에서는 유니티를 활용하여 간단한 총알 발사 시스템을 구현해 보겠습니다. 본 강좌는 유니티에 대한 기본적인 이해를 바탕으로 하며, 초보자도 쉽게 따라할 수 있도록 단계별로 진행될 것입니다. 이 강좌를 완료하면 2D 또는 3D 게임에서 총알 발사 기능을 응용할 수 있는 기초를 다지게 될 것입니다.
목차
1. 환경 설정
유니티를 효과적으로 사용하기 위해서는 적절한 환경 설정이 필요합니다. 유니티 허브에서 유니티의 최신 버전을 다운로드하고 설치하십시오. 현재 프로젝트에 필요한 패키지를 설치하기 위해 패키지 관리자를 이용합니다. 특히 Physics와 2D Physics 패키지가 필요합니다.
2. 유니티 프로젝트 생성
유니티 허브를 열고 새 프로젝트를 생성합니다. 2D 또는 3D 중 원하는 옵션을 선택합니다. 이 강의를 위해 3D로 진행하는 것을 추천합니다. 프로젝트의 이름을 ‘BulletShooter’로 설정하고 경로를 지정한 후 ‘Create’ 버튼을 클릭합니다.
3. 스프라이트 추가 및 설정
총알과 발사기의 스프라이트를 추가해야 합니다. 스프라이트 이미지를 준비하고 ‘Assets’ 폴더에 드래그하여 추가합니다. 이후 각 스프라이트의 Inspector 패널에서 Sprite Renderer를 사용하여 이미지의 모양과 크기를 조정합니다.
3.1. 총알 스프라이트 생성
총알 스프라이트를 선택한 후, Add Component 버튼을 클릭하여 Rigidbody와 Collider를 추가합니다. Rigidbody의 중력을 비활성화하면 총알이 직선으로 발사됩니다.
3.2. 발사기 스프라이트 생성
발사기의 스프라이트에도 동일하게 Rigidbody와 Collider를 추가합니다. 발사기의 위치를 적절하게 설정하여 총알이 발사될 방향으로 조정합니다.
4. 총알 발사 스크립트 작성
이제 총알이 발사되는 방식을 정의할 스크립트를 작성해 보겠습니다. ‘Assets’ 폴더의 빈 공간에서 마우스 오른쪽 버튼 클릭 후 Create > C# Script를 선택하고 ‘Bullet’이라는 이름으로 스크립트를 생성합니다.
4.1. Bullet.cs 코드 작성
using UnityEngine;
public class Bullet : MonoBehaviour
{
public float speed = 20f;
void Start()
{
Rigidbody rb = GetComponent();
rb.velocity = transform.forward * speed;
}
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Enemy"))
{
Destroy(other.gameObject);
Destroy(gameObject);
}
}
}
위의 코드는 총알이 발사될 때 Rigidbody 컴포넌트를 통해 설정된 속도 만큼 전방으로 이동하게 합니다. 적과 충돌 시 총알 및 적 오브젝트가 파괴되도록 구현되었습니다.
5. 발사기 제어 스크립트 작성
이제 발사기가 총알을 발사하는 기능을 추가할 차례입니다. 새로운 스크립트 ‘Gun’을 생성하여 아래의 코드를 작성합니다.
5.1. Gun.cs 코드 작성
using UnityEngine;
public class Gun : MonoBehaviour
{
public GameObject bulletPrefab;
public Transform firePoint;
public float fireRate = 1f;
private float nextFireTime = 0f;
void Update()
{
if (Input.GetButton("Fire1") && Time.time >= nextFireTime)
{
nextFireTime = Time.time + 1f / fireRate;
Shoot();
}
}
void Shoot()
{
Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
}
}
이 스크립트는 사용자가 마우스 버튼을 눌렀을 때 총알을 발사합니다. firePoint 위치에서 인스턴스를 만들어 총알이 발사되도록 구현하였습니다.
6. 테스트 및 디버깅
이제 모든 설정이 완료되었으니 테스트를 통해 코드가 문제없이 작동하는지 확인해야 합니다. 유니티 에디터의 플레이 버튼을 클릭하여 게임을 실행합니다. 사용할 마우스 버튼을 눌러 총알이 발사되는지 확인하십시오. 총알이 적과 접촉하여 파괴되는지도 확인합니다.
7. 결론
이번 강좌에서는 유니티를 사용하여 간단한 총알 발사 시스템을 구축해 보았습니다. 객체의 스프라이트 설정, Rigidbody 활용, 스크립트를 통한 총알 발사기능 구현 등을 다루었습니다. 이제 여러분은 이 기초 지식을 바탕으로 더 복잡하고 재미있는 게임 개발로 나아갈 수 있습니다. 유니티에는 다양한 기능이 많이 존재하니, 계속해서 실습하고 발전해 나가길 바랍니다.