서버에서 불러온 songItem 데이터를 저장하기 위해서는 미리 로컬에 파일을 만들어야 하는데
이러한 .asset 확장자의 커스텀 에셋은 File.Create()로는 잘 안된다..
여기서는 별로 중요하지는 않지만, 이렇게 생긴 에셋이다
그래서 찾아보니 AssetDatabase 라는 게 있었다
그렇게 해서 작성한 코드는 다음과 같다
CreateAsset()을 통해 .asset의 임의의 에셋 파일을 만들어주었다
string songItemPath = "Assets/Resources/songItem.asset";
void Start()
{
var songItem = new SongItem();
AssetDatabase.CreateAsset(songItem, songItemPath);
// Print the path of the created asset
Debug.Log(AssetDatabase.GetAssetPath(songItem));
}
정상적으로 로그 출력도 되고
원하는 폴더에 songItem.asset도 생성되었다!
그리고 이렇게 생성한 에셋을 불러오기 위해서는 다시 한 번 AssetDatabase를 사용해야 한다
LoadAssetAtPath()를 통해 불러올 수 있다
SongItem songItem = (SongItem)AssetDatabase.LoadAssetAtPath(songItemPath, typeof(SongItem));
참고
https://docs.unity3d.com/kr/530/ScriptReference/AssetDatabase.CreateAsset.html