아이템을 스크립터블 오브젝트로 여러개 만들었는데 그런 여러가지 아이템들을 관리하는 데이터베이스(스크립터블 오브젝트)
이 데이터베이스가 없어도 게임을 진행하는데는 문제 없음.
그렇지만 아이템이 수백가지 수천가지가 되면 찾기 어려워짐. 그래서 개발의 효율성, 편의성을 높이려고 기능 추가.
- 아이템의 이름이나, 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));
}
유니티 OnValidate() (0) | 2024.12.21 |
---|---|
유니티 인벤토리 드래그 앤 드롭 (0) | 2024.11.29 |
유니티 인벤토리 아이템 설정 (1) | 2024.11.08 |
유니티 딕셔너리 (0) | 2024.11.01 |
유니티 뉴인풋시스템 - 구르기, 회피, 닷지, 롤 (0) | 2024.10.24 |