증거품 UI
This commit is contained in:
8
Assets/02_Scripts/_Data/Item.meta
Normal file
8
Assets/02_Scripts/_Data/Item.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d08e6466f285165448cc7a8751239a65
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
22
Assets/02_Scripts/_Data/Item/ItemData.cs
Normal file
22
Assets/02_Scripts/_Data/Item/ItemData.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using UnityEngine;
|
||||
|
||||
// 증거품/아이템 하나 (역전재판의 법정기록 항목).
|
||||
//
|
||||
// Id가 곧 "제시 키"다 — 대화 노드의 HiddenBranch.Key와 같은 값을 쓰면,
|
||||
// 그 노드가 재생되는 동안 증거품창에서 이 아이템을 클릭했을 때 해당 히든 분기가 열린다.
|
||||
// (DialogTouchZone의 부위 키와 완전히 같은 통로를 쓴다)
|
||||
[CreateAssetMenu(menuName = "Item/Item Data")]
|
||||
public class ItemData : ScriptableObject
|
||||
{
|
||||
[Tooltip("고유 Id — 저장 파일과 히든 분기 Key에 쓰인다. 비우면 에셋 이름")]
|
||||
public string Id;
|
||||
|
||||
[Tooltip("증거품창에 표시할 이름")]
|
||||
public string Name;
|
||||
|
||||
[Tooltip("증거품창에 표시할 그림")]
|
||||
public Sprite Icon;
|
||||
|
||||
[Tooltip("증거품창에 표시할 설명")]
|
||||
[TextArea(2, 5)] public string Description;
|
||||
}
|
||||
2
Assets/02_Scripts/_Data/Item/ItemData.cs.meta
Normal file
2
Assets/02_Scripts/_Data/Item/ItemData.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 70ed680488473ed44ad380007f918f67
|
||||
25
Assets/02_Scripts/_Data/Item/ItemDatabase.cs
Normal file
25
Assets/02_Scripts/_Data/Item/ItemDatabase.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
// 게임에 존재하는 모든 아이템의 목록 (StoryDatabase와 같은 "단일 원본" 역할).
|
||||
// 저장 파일에는 Id 문자열만 남으므로, Id → ItemData 복원은 이 에셋이 담당한다.
|
||||
// 게임에 하나만 만들어 ItemHud에 꽂아 쓴다.
|
||||
[CreateAssetMenu(menuName = "Item/Item Database")]
|
||||
public class ItemDatabase : ScriptableObject
|
||||
{
|
||||
[SerializeField] private List<ItemData> _items = new();
|
||||
|
||||
public IReadOnlyList<ItemData> Items => _items;
|
||||
|
||||
public ItemData FindById(string id)
|
||||
{
|
||||
if (string.IsNullOrEmpty(id)) return null;
|
||||
foreach (var item in _items)
|
||||
{
|
||||
if (item == null) continue;
|
||||
string itemId = string.IsNullOrEmpty(item.Id) ? item.name : item.Id;
|
||||
if (itemId == id) return item;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
2
Assets/02_Scripts/_Data/Item/ItemDatabase.cs.meta
Normal file
2
Assets/02_Scripts/_Data/Item/ItemDatabase.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f6c0a1fdc73b78049aa22e3aa4e84290
|
||||
Reference in New Issue
Block a user