상세 컨텐츠

본문 제목

유니티 인벤토리 데이터 베이스

유니티/기능

by MJ_119 2024. 11. 26. 00:49

본문

아이템을 스크립터블 오브젝트로 여러개 만들었는데 그런 여러가지 아이템들을 관리하는 데이터베이스(스크립터블 오브젝트)

 

이 데이터베이스가 없어도 게임을 진행하는데는 문제 없음.

그렇지만 아이템이 수백가지 수천가지가 되면 찾기 어려워짐. 그래서 개발의 효율성, 편의성을 높이려고 기능 추가.

 

- 아이템의 이름이나, ID를 토대로 반환해준다.

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

// 아이템 데이터베이스 ScriptableObject
[CreateAssetMenu(fileName = "ItemDatabase", menuName = "Inventory/ItemDatabase")]
public class ItemDatabase : ScriptableObject
{
    public List<Item> items = new List<Item>();

    // ID로 아이템 찾기
    public Item FindItemById(string id)
    {
        return items.Find(item => item.itemID == id);
    }
    // Name으로 아이템 찾기
    public Item FindItemByName(string name)
    {
        return items.Find(item => item.itemName == name);
    }
}

 

- 아래는 이름으로 검색할때 대소문자 구별 없이 검색 가능한 코드

public Item FindItemByName(string name)
{
    return items.Find(item => string.Equals(item.itemName, name, System.StringComparison.OrdinalIgnoreCase));
}

 

관련글 더보기