Menu
CoddyTech

제작 작업대

Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 62번째.

생존 게임에서 제작대는 모은 재료를 사용할 수 있는 물건으로 바꿔 줍니다. 버튼 두 개로 나무와 돌을 모으고, 제작법 세 가지로 이를 더 많은 물건으로 바꿉니다. 나무 두 개로 판자 하나를 만들고, 판자 하나와 돌 두 개로 도끼 하나를 만들며, 판자 네 개로 뗏목 하나를 만듭니다. 제작법 버튼은 인벤토리에 해당 제작법에 필요한 모든 재료가 있을 때만 누를 수 있으며, 제작하면 재료가 소모됩니다. 제작법은 Inspector에서 제작대에 입력하는 데이터이므로 새 제작법을 추가해도 코드는 새로 작성할 필요가 없습니다. 인벤토리는 변경될 때마다 이를 듣고 있는 대상에 알리고, 변경될 때마다 JSON으로 저장하므로 게임을 종료해도 아무것도 잃지 않습니다.

두 개의 레슨으로 이를 만듭니다. 이번 레슨에서는 Backpack에 있는 Inventory를 작성하고, 제작대의 제작법은 다음 레슨에서 다룹니다.

challenge icon

챌린지

어려움

1부: Inventory를 완성하세요. 이제 아이템을 모을 준비가 되었습니다.

  1. 직렬화 가능한 ItemStack(public item, count)과 InventoryData(public List<ItemStack> stacks)를 추가하세요.
  2. Count, Add, Remove(스택의 개수가 0이 되면 제거됨), Describe를 완성하세요: Wood 3, Plank 1 또는 empty.
  3. 변경할 때마다 Application.persistentDataPath에 inventory.json을 저장하고 Changed를 발생시키세요. Awake에서 파일을 불러오세요.

‘플레이’를 누르고 아이템을 모은 다음 다시 실행하세요. 나무가 그대로 남아 있습니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

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

// ItemStack과 InventoryData는 여기에 들어갑니다

public class Inventory : MonoBehaviour
{
    public event Action Changed;

    void Awake()
    {
        // inventory.json이 있으면 불러옵니다
    }

    public int Count(string item)
    {
        return 0;
    }

    public void Add(string item, int amount)
    {
    }

    public void Remove(string item, int amount)
    {
    }

    public string Describe()
    {
        return "empty";
    }
}

Unity 게임 아키텍처의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드