자세히보기

공부 나눔 (Sharing Study)/Unity 와 C#

[Unity/C#] CSV파일 파싱하는 방법

윤스톤 2020. 3. 6. 21:00

다양한 종류의 텍스트를 관리하기 위해 많은 개발자가 사용하는 방법인

CSV 파일을 파싱하는 방법을 알아보도록 하겠습니다 :)

 

 

1. CSV 파일 만들어 저장하기

 

먼저 유니티에 파싱할 CSV 파일을 만들어야 합니다

메모장, 엑셀 등으로 만들 수 있으나 저는 정리하기도 쉽고, 한눈에 보기 좋은 엑셀로 제작했습니다

 

 

저는 이렇게 코드에서 사용할 때 헷갈리지 않도록 번호를 쓰고, 각 챕터에 사용되는 자막을 써두었습니다

(줄이 비어있으면 특정 행동을 하도록 하기 위해 중간중간 줄을 비워뒀습니다 따라 하지 않으셔도 됩니다)

 

맨 위에 있는 Number, Chapter, Content가 써있는 줄은 'Header'라고 부르는 하위항목 설명란입니다

 

 

다른 이름으로 저장 → CSV UTF-8(쉼표로 분리)(*. csv)로 변경 → 저장

 

 

이렇게 저장한 파일을 메모장으로 열어보면 이렇게 쉼표(,)로 구분한 형태로 저장되어있습니다

 

 

 

2. 유니티에서 CSV 파일 읽기

 

유니티에서 CSV 파일을 사용하기 위해서는 리소스 폴더에 들어있어야 합니다

 

 

유니티를 열고 Assets 폴더 안에 Resources 폴더를 만들고

그 안에 만들었던 CSV파일을 넣어줍니다

(Resources 스펠링이 틀리면 실행이 안되니 주의해주세요!!)

 

CSVReader.cs
0.00MB

그리고 이 스크립트를 다운로드하여 프로젝트에 임포트 시켜주세요

(CSV 파일을 읽어들일 때 이 CSVReader 클래스를 사용하게 됩니다!) 

(CSVReader 출처 : https://bravenewmethod.com/2014/09/13/lightweight-csv-reader-for-unity/#comment-7111)

 

 

3. CSVReader를 사용하여 텍스트 출력해보기 

 

CSV파일을 읽을 준비는 모두 끝났습니다

 

List<Dictionary<string, object>> data_Dialog = CSVReader.Read("Dialog");

새로운 스크립트를 만들어 이 코드를 넣어주면 

data_Dialog라는 변수에 CSV 파일의 데이터를 저장할 수 있습니다

 

✔ 'data_Dialog' 부분은 원하는 이름을 사용하시면 됩니다

✔ "Dialog" 부분은 리소스 폴더에 넣어둔 CSV 파일의 이름을 넣어주시면 됩니다

 

for (int i = 0; i < data_Dialog.Count; i++)
{
	print(data_Dialog[i]["Content"].ToString());
}

그리고 그 아래에 만들어 이 코드를 넣어주면 

Header에 있던 Content 부분의 데이터가 모두 출력됩니다

(Content 대신 Number, Chapter를 넣으면 해당 데이터가 출력됩니다)

Clipboard.cs
0.00MB

(위 코드를 복사하시려면 이 스크립트를 다운받아주세요 - 우클릭 방지)

 

 

변수 이름[data index]["Header이름"]. ToString();

 

이 코드를 응용하여 CSV 파일을 사용한 여러 기능을 구현하실 수 있습니다 :)

 


유니티에서 CSV파일을 읽어 들이는 방법은 여기까지입니다!

읽어주셔서 감사합니다 😊

반응형