Unity의 재고 없는 픽 앤 드롭 시스템

이 튜토리얼에서는 인벤토리 시스템을 사용하지 않고 Unity에 간단한 픽 앤 드롭 시스템을 만들어 보겠습니다. 이 시스템을 통해 플레이어는 환경에서 개체를 집어 다른 위치에 떨어뜨릴 수 있습니다.

전제 조건

  • Unity 허브 설치됨
  • Unity 편집기(버전 2019 이상)
  • C#에 대한 기본 지식

프로젝트 설정

  1. Unity 허브를 열고 새 Unity 프로젝트를 만듭니다.
  2. 상호작용할 플레이어 캐릭터와 일부 개체로 장면을 설정하세요.

Pick and Drop 시스템 구현

1단계: 픽업 스크립트 만들기

using UnityEngine;

public class Pickup : MonoBehaviour
{
    private Transform heldObject;
    private Vector3 offset;

    void Update()
    {
        if (heldObject != null)
        {
            MoveHeldObject();
            CheckDrop();
        }
        else
        {
            CheckPickup();
        }
    }

    void MoveHeldObject()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        heldObject.position = new Vector3(mousePosition.x + offset.x, mousePosition.y + offset.y, 0);
    }

    void CheckPickup()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
            if (hit.collider != null && hit.collider.CompareTag("Pickup"))
            {
                heldObject = hit.transform;
                offset = heldObject.position - Camera.main.ScreenToWorldPoint(Input.mousePosition);
            }
        }
    }

    void CheckDrop()
    {
        if (Input.GetMouseButtonDown(1))
        {
            heldObject = null;
        }
    }
}

2단계: 픽업 개체에 태그 추가

"Pickup" 태그를 사용하여 플레이어가 집을 수 있게 하려는 개체에 태그를 지정하세요.

  1. 장면에서 개체를 선택합니다.
  2. Inspector 창에서 "Tag" 드롭다운을 클릭합니다.
  3. "Add Tag"를 선택하고 "Pickup"을 입력합니다.
  4. 개체에 태그를 적용합니다.

3단계: 시스템 테스트

  1. "Pickup" 태그가 있는 일부 개체를 장면에 추가합니다.
  2. Unity에서 장면을 재생합니다.
  3. 태그가 붙은 개체를 클릭하면 줍습니다.
  4. 마우스 오른쪽 버튼을 클릭하면 고정된 개체를 놓을 수 있습니다.

결론

Unity에서 인벤토리를 사용하지 않고 간단한 픽 앤 드롭 시스템을 성공적으로 구현했습니다. 이 시스템을 사용하면 플레이어는 장면의 개체를 집어 들고 다른 위치에 놓아서 상호 작용할 수 있습니다. 객체 스냅, 객체 회전 또는 더 복잡한 상호 작용과 같은 기능을 추가하여 이 시스템을 자유롭게 확장하세요.

추천 기사
Unity에서 UI 드래그 앤 드롭을 사용하여 간단한 인벤토리 시스템 코딩
Unity로 인벤토리 및 아이템 제작 시스템 만들기
Unity에서 특정 키로 서랍과 찬장 열기
Unity에서 퍼즐 게임 만들기
Unity에서 비디오 파일을 재생하는 방법
Unity로 턴제 게임 만들기
Unity 게임에서 객체와 상호작용