제작 작업대
Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 62번째.
생존 게임에서 제작대는 모은 재료를 사용할 수 있는 물건으로 바꿔 줍니다. 버튼 두 개로 나무와 돌을 모으고, 제작법 세 가지로 이를 더 많은 물건으로 바꿉니다. 나무 두 개로 판자 하나를 만들고, 판자 하나와 돌 두 개로 도끼 하나를 만들며, 판자 네 개로 뗏목 하나를 만듭니다. 제작법 버튼은 인벤토리에 해당 제작법에 필요한 모든 재료가 있을 때만 누를 수 있으며, 제작하면 재료가 소모됩니다. 제작법은 Inspector에서 제작대에 입력하는 데이터이므로 새 제작법을 추가해도 코드는 새로 작성할 필요가 없습니다. 인벤토리는 변경될 때마다 이를 듣고 있는 대상에 알리고, 변경될 때마다 JSON으로 저장하므로 게임을 종료해도 아무것도 잃지 않습니다.
두 개의 레슨으로 이를 만듭니다. 이번 레슨에서는 Backpack에 있는 Inventory를 작성하고, 제작대의 제작법은 다음 레슨에서 다룹니다.
챌린지
어려움1부: Inventory를 완성하세요. 이제 아이템을 모을 준비가 되었습니다.
- 직렬화 가능한
ItemStack(publicitem,count)과InventoryData(publicList<ItemStack> stacks)를 추가하세요. Count,Add,Remove(스택의 개수가 0이 되면 제거됨),Describe를 완성하세요:Wood 3, Plank 1또는empty.- 변경할 때마다
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 플레이그라운드