Unity 2D 아이템 제작 - 저장

2025. 7. 21. 15:53·유니티 개발/사이드 뷰 게임

이번 글에서는 아이템 제작 -저장 구현한것을 정리해보겠습니다.

 

먼저 전달해야 하는 변수들을 선언합니다.

//전달 해야하는 변수들
private string createItemName;
private int createItemprice;
private string createItemText;
ItemTpyes createItemtype;
Condition createItemcon;
private Sprite settingSprite;

enum 기반 드랍 다운과 스크롤 뷰를 제외한 것들이 완성이 되었으면 이제 

스크립트로 넘어가보겠습니다.

 

저장을 하기 전  빈 ItemData 생성을 해야 합니다. 

ItemData temp = ScriptableObject.CreateInstance<ItemData>();

ScriptableObject.CreateInstance<data >() 는 빈 data의 오브젝트를 생성하는 함수 입니다.

 

void SetField(string fieldName, object value)
{
    typeof(ItemData).GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance)
        ?.SetValue(temp, value);
}

이제 SetField()는 리플렉션을 사용해 비공개 필드에 값 설정을 합니다.

BindingFlags.NonPublic 는 비공개 인스턴스 필드(private 등)에 접근하기 위한 옵션입니다.

indingFlags.Instance 는 static이 아닌 일반 인스턴스 대상을 말합니다.

위에 있는 두개를 합치면 private로 선언된 인스턴스 변수에 접근이 가능합니다.

 

SetField("itemName", createItemName);

이제 이름, 처음 작성한 변수명을 넣는다면 메모리에 추가 할수 있습니다.

하지만 메모리에만 있으면 엔진을 껏다 키거나 아니면 게임을 껏다 키면 추가한 데이터가 삭제가 됩니다.

 

그러면 .asset 파일로 저장하는 툴을 구현하면 엔진을 껏다 키거나 게임을 껏다 

키더라도 데이터가 되지 않습니다.

ItemData tempItem = CreateTempItem();
ItemSaveTool.SaveItemAsset(tempItem, createItemName);
#if UNITY_EDITOR
//using UnityEditor;
#endif

public static class ItemSaveTool
{
#if UNITY_EDITOR
    public static void SaveItemAsset(ItemData itemData, string fileName)
    {
        string dirPath = "Assets/Datas/ItemData";
        if (!Directory.Exists(dirPath))
            Directory.CreateDirectory(dirPath);

        string path = $"{dirPath}/{fileName}.asset";
        AssetDatabase.CreateAsset(itemData, path);

        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
#endif
}

이렇게 작성을 하면 저장이 됩니다.

 

 

위에 생성한 데이터

'유니티 개발 > 사이드 뷰 게임' 카테고리의 다른 글

Unity 2D - 사운드 조절 기능 추가  (3) 2025.08.02
Unity 2D 아이템 제작 - Enum 기반 드롭 다운 및 스크롤 리스트 생성  (0) 2025.07.21
Unity 2D 아이템 제작 -이미지 미리보기  (0) 2025.07.20
Unity 2D 아이템 제작 - 기본 베이스  (0) 2025.07.20
Unity 2D 보스 - 특수 공격  (0) 2025.07.20
'유니티 개발/사이드 뷰 게임' 카테고리의 다른 글
  • Unity 2D - 사운드 조절 기능 추가
  • Unity 2D 아이템 제작 - Enum 기반 드롭 다운 및 스크롤 리스트 생성
  • Unity 2D 아이템 제작 -이미지 미리보기
  • Unity 2D 아이템 제작 - 기본 베이스
dove-dove
dove-dove
dove-dove 님의 블로그 입니다.
  • dove-dove
    dove-dove 님의 블로그
    dove-dove
  • 전체
    오늘
    어제
    • 분류 전체보기 (38)
      • 유니티 개발 (38)
        • 팀 포트폴리오 - 슈퍼 마리오 (7)
        • 사이드 뷰 게임 (22)
        • 계륵 (8)
        • 깃 주소 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
dove-dove
Unity 2D 아이템 제작 - 저장
상단으로

티스토리툴바