본문 바로가기

Unity/Unity2D_Shooting

Unity2D_Shooting - 텍스트파일을 이용한 커스텀배치(중요)

1. 텍스트파일을 이용한 커스텀배치

(1) - Spawn스크립트를 생성하여 아래 3가지 변수가 담긴 Spawn Class를 생성한다

    - 3가지 변수를 그대로 사용, 열거한 적기체생성딜레이,적기체타입,적기체생성위치 정보가 담긴 .txt파일을 작성한다

 

(2) - Assets폴더에 Resources폴더(런타임에서 불러오는 에셋이 저장된 폴더)를 만들고 그안에 우리가 작성한 .txt파일을 넣는다

*Resource 아니고 Resources이다

 

 

(3). 비어있는 SpawnList 리스트에 메모장 한줄의 정보가 들어가서 초기화된 Spawn Class인스턴스

      1개를 넣어보자

- Spawn클래스의 인스턴스 안의 각각의 변수에 메모장의 여러줄 중 한 줄의 데이터를 삽입하고 그렇게 완성된 인스턴스가 메모장의 한 줄 한줄 마다 대응하여 여러개의 인스턴스를 만들것이고 그 여러 인스턴스들을 하나의 리스트의 원소들로 넣어줄 것임.

 

* using System.IO;  : 파일 읽기를 위해 필요한 모듈

* TextAsset : 텍스트파일 에셋 클래스(텍스트파일의 자료형)

* TextAsset textFile.text : 텍스트파일안의 모든텍스트정보, 반환형은 문자열

* Resources.Load(불러올 파일,오브젝트 등 이름) : Resources폴더 내 파일 불러오기

* Resources.Load("Stage0"as TextAsset; : 우리가 불러온 Stage0이라는 파일이 TextAsset자료형에 해당하는 text파일이 아니라면 null을 반환하도록 함

* StringReader : 읽어온 txt파일 내의 문자열 데이터 읽기 클래스, 사용할때에는

                      StringReader X = new StringReader(읽을 txt파일의 text)로 읽을 파일 정보가 들어간 인스턴스 X를

                     생성하고 X.ReadLine()과 같은 식으로 사용

*X.ReadLine() : 이전에 읽어온 txt파일의 모든 text정보에서 한 줄을 읽어서 그 한줄을 문자열로 반환

                    즉, 텍스트데이터를 한줄 씩 반환(자동줄바꿈)

*float.parse(문자열) : 문자열을 float화 

*int.parse(문자열)   : 문자열을 int화

 

 

 

 

(4). 비어있는 SpawnList 리스트에 메모장 한줄의 정보가 들어가서 초기화된 Spawn Class인스턴스     여러개를 넣어보자

-ReadLine()으로 한줄을 읽으면 stringReader안의 한줄도 사라짐 따라서 다음stringReader를 읽을때에는 자동적으로 이전에 읽은 줄의 다음 줄을 읽게 되어있음 이런식으로 읽어올 한줄이 존재하는 경우 while문이 true이니까 stringReader안의 텍스트데이터가 남아있는 동안에 반복문을 돌다가  더이상 읽어올 한줄이 없을때 break로 반복문을 빠져나간다

-그리고 꼭 stringReader는 마지막에 close()해주어야 한다

 

 

 

 

(5) 데이터 적용