이번 글에서는 아이템을 구현을 하였는지 정리 해보겠습니다.
먼저 구현을 하기 전 이글을 보고 오면 편합니다.
https://dove-dove.tistory.com/8
스크립터블 오브젝트를 이용한 아이템을 구현 해보겠습니다.
먼저 게임 매니저에 리스트를 추가 합니다.
public List<ItemData> itemData = new List<ItemData>();
리스트를 만들었다면 유니티에서 드래그 드롭으로 추가 하거나 아니면
public void GetItemData(ItemData getData)
{
itemData.Add(getData);
}
public void FileFindAddData()
{
string FileLocation = "Assets/Datas/ItemData";
string[] Files= AssetDatabase.FindAssets("t:ItemData", new[] { FileLocation });
//DirectoryInfo files = new DirectoryInfo(Path.Combine(Application.streamingAssetsPath, ""));
foreach (string addFile in Files)
{
string pushFile = AssetDatabase.GUIDToAssetPath(addFile);
ItemData pushData = AssetDatabase.LoadAssetAtPath<ItemData>(pushFile);
if(pushData != null && pushData.ItemName != "null")
GetItemData(pushData);
}
}
이렇게 파일 경로를 지정하여 추가 하실수 있습니다.
이렇게 List에 추가 하였다면 이제 가저오면 됩니다. 저는 랜덤으로 아이템이 나오도록 만들었습니다.
public ItemData RanItemData()
{
ItemData data;
int randomNum = UnityEngine.Random.Range(1, itemData.Count);
data = itemData[randomNum];
return data;
}
이제 아이템을 받아 왔으면 이제 아이템 오브젝트를 생성 후 받아오면 끝 입니다.
public class StartItem : MonoBehaviour
{
public float detectionRadius = 3f;
Vector3 movePos;
GameObject ui;
ItemData itemData;
// Start is called before the first frame update
void Start()
{
ui = GameObject.Find("UI_Canvas");
GetItemData();
}
// Update is called once per frame
void Update()
{
Collider2D[] hits = Physics2D.OverlapCircleAll(transform.position, detectionRadius);
bool playerDetected = false;
foreach (var hit in hits)
{
if (hit.CompareTag("Player"))
{
movePos = (hit.transform.position - transform.position).normalized;
playerDetected = true;
break; // 플레이어만 감지하면 되므로 반복 중단
}
}
}
public void GetItemData()
{
itemData = GameManager.Instance.RanItemData();
GetComponent<SpriteRenderer>().sprite = itemData.ItemImg;
}
}
이렇게 구현하였고 이제 실행을 해보면

실행을 할때마다 랜덤한 아이템이 나옵니다.
'유니티 개발 > 사이드 뷰 게임' 카테고리의 다른 글
| Unity 2D 플레이어 스킬 UI 구현 (0) | 2025.07.18 |
|---|---|
| Unity 2D 게임 UI- 아이템 설명 구현 및 상태 창 구현 (0) | 2025.07.18 |
| Unity 2D 게임 UI - ESC 눌렀을 때 멈춤 화면 (0) | 2025.07.18 |
| Unity 2D 게임 UI - 체력 바 및 시간 구현 (0) | 2025.07.18 |
| Unity 2D 스크립터블 오브젝트 생성 (0) | 2025.07.18 |