Unity에서 간단한 2D 플랫포머 만들기
이 튜토리얼에서는 Unity에서 기본 2D 플랫포머를 만들 것입니다. 여기에는 이동, 점프, 플랫폼과 상호 작용할 수 있는 플레이어 캐릭터를 만드는 것이 포함됩니다. 또한 장애물과 수집품과 같은 몇 가지 기본 게임 요소를 추가합니다.
1. 프로젝트 설정
새로운 Unity 2D 프로젝트를 설정하는 것으로 시작해 보겠습니다.
- Unity을 열고 새로운 2D 프로젝트를 만듭니다.
- 파일 > 새 장면으로 가서 2D 모드를 선택합니다.
- 장면을 MainScene로 저장합니다.
2. 플레이어 캐릭터 생성
먼저 스프라이트를 사용하여 간단한 플레이어 캐릭터를 만들고 이동 기능을 추가합니다.
- Hierarchy 창에서 마우스 오른쪽 버튼을 클릭하고 Create Empty를 선택합니다. 이 객체의 이름을 Player로 지정합니다.
- 인스펙터에서 컴포넌트 추가를 클릭하여 플레이어 객체에 스프라이트 렌더러 컴포넌트를 추가합니다.
- 캐릭터로 사용할 스프라이트를 선택하려면 직접 만들거나 Unity Asset Store에서 2D 자산을 가져옵니다.
- 물리 및 충돌 감지를 위해 Player 객체에 Rigidbody2D와 BoxCollider2D를 추가합니다.
3. 플레이어 이동 스크립트 작성
이제 플레이어가 움직이고 점프할 수 있는 스크립트를 작성해 보겠습니다. 다음 단계를 따르세요.
- Project 창에서 마우스 오른쪽 버튼을 클릭하고 Create > C# Script를 선택합니다. 이름을 PlayerController로 지정합니다.
- 이 스크립트를 프로젝트 창에서 계층 구조의 플레이어로 끌어서 플레이어 객체에 연결합니다.
스크립트 내용을 다음과 같이 바꾸세요.
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f;
public float jumpForce = 7f;
private Rigidbody2D rb;
private bool isGrounded = true;
void Start()
{
rb = GetComponent();
}
void Update()
{
// Player movement
float moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);
// Jumping
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
isGrounded = false;
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
// Check if player is touching the ground
if (collision.collider.CompareTag("Ground"))
{
isGrounded = true;
}
}
}
4. 플랫폼 및 환경 생성
이제 플레이어가 점프할 수 있는 플랫폼을 만들어 보겠습니다.
- 계층 구조에서 마우스 오른쪽 버튼을 클릭하고 빈 항목 만들기를 선택한 다음 플랫폼로 이름을 지정합니다.
- 플랫폼에 BoxCollider2D와 Sprite Renderer를 추가합니다.
- 플랫폼에 대한 스프라이트를 선택합니다(예: 평평한 직사각형).
- Ctrl+D (Mac에서는 Cmd+D)를 눌러 플랫폼을 복제하고 복사본의 위치를 지정하여 레벨을 만듭니다.
- 플레이어의 점프 로직을 위해 인스펙터에서 이러한 객체를 지면로 태그합니다.
5. 장애물 추가
게임을 더 어렵게 만들려면 몇 가지 장애물을 추가해 보겠습니다.
- 빈 게임오브젝트를 새로 만들고 장애물이라고 이름을 지정합니다.
- 이 객체에 BoxCollider2D와 Sprite Renderer를 추가합니다.
- 장애물(예: 스파이크나 위험 요소)에 대한 스프라이트를 선택합니다.
- 플레이어의 OnCollisionEnter2D 메서드에서 장애물과의 충돌을 감지하고 게임을 다시 시작하거나 체력을 깎을 수 있습니다.
6. 수집품 추가
동전이나 파워업과 같은 수집품을 추가할 수도 있습니다.
- 빈 게임 오브젝트를 하나 더 만들고 Collectible이라고 이름을 지정합니다.
- CircleCollider2D (트리거로 설정)와 Sprite Renderer를 추가하여 수집품을 표현합니다.
- 플레이어가 아이템을 수집하는 시점을 감지하는 간단한 스크립트를 작성하세요.
using UnityEngine;
public class Collectible : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
// Add points or other effects here
Destroy(gameObject); // Remove the collectible from the scene
}
}
}
7. 게임 테스트 및 조정
이제 기본적인 메커니즘이 마련되었으므로 Play 버튼을 눌러 게임을 테스트할 수 있습니다. 다음을 조정해 보세요.
- moveSpeed 및 jumpForce 값을 수정하여 플레이어의 이동 및 점프 속도를 조정합니다.
- 다양한 레벨을 만들려면 플랫폼과 장애물을 복제하세요.
- 게임을 시각적으로 매력적으로 만들려면 배경 요소나 장식을 추가하세요.
8. 플랫포머 강화
플랫포머를 다음 단계로 끌어올리려면 다음을 추가하는 것을 고려하세요.
- 플레이어를 위한 걷기, 점프 애니메이션 등의 애니메이션입니다.
- 점프, 아이템 수집, 장애물 타격에 대한 음향 효과.
- 플레이어의 움직임을 따라가는 카메라로 게임을 더욱 역동적으로 볼 수 있습니다.
결론
이 간단한 2D 플랫포머 설정으로 이제 더 많은 기능, 레벨, 세련미로 확장할 수 있는 기본 게임 구조가 생겼습니다. 다양한 메커니즘을 실험하고 고유한 플랫포머를 만들어 보세요.