반응형
레벨 디자인을 위해 ScriptableObject 파일들의 정보를 텍스트 파일로 만들 필요가 있어서 데이터를 엑셀로 만드는 방법을 찾다가 Nuget 패키지를 설치해 사용 해보려 했는데 using이 되질 않아 일단 내가 필요한 데이터들을 csv파일로 만들어봤다.
코드
using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class CSVWriter
{
static Dictionary<string, List<string>> excel = new Dictionary<string, List<string>>();
public static void Add(string filename ,params string[] datas)
{
string cell = string.Join(",", datas);
excel[filename].Add(cell);
}
public static void Create(string filename)
{
excel.Add(filename, new List<string>());
}
public static void Save(string filename)
{
string path = Path.Join(Application.dataPath, filename+DateTime.UtcNow.Ticks.ToString() + ".csv");
StreamWriter outStream = System.IO.File.CreateText(path);
foreach (var cell in excel[filename])
outStream.WriteLine(cell);
outStream.Close();
}
}
사용법
일단 Create 메서드를 사용해 csv로 저장할 데이터의 딕셔너리를 만들어야한다.
Add를 통해 데이터를 입력해 준다. 행과 열은 알아서 처리해준다
Save를하면 프로젝트 폴더의 Assets에 해당 파일이름으로 저장이된다.
간단한 스크립트라 딱히 설명할게 없긴한데 DateTime을 넣은 이유는 중복 처리를 위해 넣을것이다.
'Unity > Tip' 카테고리의 다른 글
RectTransform : Some values driven by Canvas. (0) | 2023.11.06 |
---|---|
Unity 빌드 에러 : Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 (0) | 2023.11.02 |
Unity에서 게임 오브젝트의 Null 체크 속도 비교 (0) | 2023.10.30 |
IEnumerator 메서드에서 async await 사용 (0) | 2023.10.24 |
클릭한 위치가 특정 오브젝트 안에 속해 있는지 판단하는 방법 (0) | 2023.10.04 |