728x90
코드로 항상 구현하기 귀찮아서 툴로 만들어 버리자
1. 사용방법
1) 해당하는 scriptable오브젝트를 프로젝트 창에서 선택한다.
2) save를 눌러주면 Datas라는 폴더에 데이터에 대한 json파일이 생성되어있다.
3) Load를 눌러주면 해당 ScriptableObject에 json데이터가 저장되어 있다.

2. 구현
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class SaveScriptableObjectToJsonEditor : Editor
{
static string savePath = Application.dataPath + "/Datas";
[MenuItem("ScriptableObject/Save")]
public static void Save()
{
Object obj = Selection.activeObject;
if (obj == null) return;
if (obj is not ScriptableObject) return;
obj = obj as ScriptableObject;
string json = JsonUtility.ToJson(obj, true);
string path = System.IO.Path.Combine(savePath, obj.name + ".json");
if(!System.IO.Directory.Exists(savePath))
{
System.IO.Directory.CreateDirectory(savePath);
}
System.IO.File.WriteAllText(path, json);
Debug.Log($"Save Complete : {json}");
AssetDatabase.Refresh();
}
[MenuItem("ScriptableObject/Load")]
public static void Load()
{
Object obj = Selection.activeObject;
if (obj == null) return;
if (obj is not ScriptableObject) return;
obj = obj as ScriptableObject;
string path = System.IO.Path.Combine(savePath, obj.name + ".json");
string json = System.IO.File.ReadAllText(path);
JsonUtility.FromJsonOverwrite(json, obj);
AssetDatabase.Refresh();
}
}
728x90
'2025 > Unity' 카테고리의 다른 글
| [Unity] tool 만들기 아코디언 메뉴 (0) | 2025.03.01 |
|---|---|
| [Unity] UI - 아코디언 메뉴 만드는 방법 <펼치고 접기> (0) | 2025.03.01 |
| unity - 2022ver 타임라인 녹화 오류 버그 (0) | 2025.02.23 |
| Unity 마우스 위치로 파악하는 Screen, View, Object, World 좌표 (0) | 2025.02.13 |
| Unity - Parallax 배경 효과를 구현하는 2가지 방법 (0) | 2025.02.11 |