단일 텍스트 파일에서 데이터를 읽는 방법


14

텍스트 파일에서 데이터를 단일하게 읽는 데 필요한 단계와 스크립트를 추가하는 방법을 알려주는 사람이 있습니까?


youtube.com/watch?v=6c1fTHkYzTQ 그것은 C #에서 텍스트를 읽는 것입니다… 도움이 될 것입니다 :)
Savlon

텍스트 파일이 에셋 (Unity 프로젝트의 일부)이거나 파일 시스템에 있습니까?
Kelly Thomas

파일을 E 드라이브에 넣고 다음 코드`import System.IO;를 사용했습니다. var filename = "data.txt"; 함수 시작 () {var sourse = new StreamReader (Application.dataPath + "/"+ 파일 이름); var fileContents = sourse.ReadToEnd (); 신맛. 닫기 (); var lines = fileContents.Split ( "\ n"[0]); for (라인 단위) {print (line); }}`
user1509674

VTC는 게임별로 다릅니다. IO는 일반적인 프로그래밍이므로 GameDev가 아닌 Stack Overflow에 있어야합니다.
Gnemlock

수락 된 답변은 Unity에 국한된 것이 아니지만 가장 많이 투표 된 답변 (모두 수락해야 할 답변) Unity에만 해당됩니다.
jhocking December

답변:


8

C # 버전.

using System.IO;

void readTextFile(string file_path)
{
   StreamReader inp_stm = new StreamReader(file_path);

   while(!inp_stm.EndOfStream)
   {
       string inp_ln = inp_stm.ReadLine( );
       // Do Something with the input. 
   }

   inp_stm.Close( );  
}

편집 : (9 줄에 오류가 수정되었습니다. "stm.ReadLine ();"을 "inp_stm.ReadLine ();"으로 변경)


27

텍스트 파일 읽기에 사용되는 TextAssets라는 클래스가 있습니다. http://docs.unity3d.com/Manual/class-TextAsset.html 여기에서 지원되는 파일 형식을 찾을 수 있습니다.

따라서 텍스트 파일을 읽으려면 스크립트는 다음과 같습니다.

class YourClassName : MonoBehaviour{
    public TextAsset textFile;     // drop your file here in inspector

    void Start(){
        string text = textFile.text;  //this is the content as string
        byte[] byteText = textFile.bytes;  //this is the content as byte array
    }
}

또는 텍스트를 다음과 같이 리소스로 읽을 수 있습니다.

TextAsset text = Resources.Load("YourFilePath") as TextAsset;

7
또한 TextAsset문제의 Assets/Resources폴더에 폴더가 있어야한다고 언급 할 가치가 있습니다 . 이것은 다른 모든 답변이 이것이 Unity 내에 있다는 사실을 무시하는 것처럼 보이기 때문에 가장 정확한 답변입니다. C #에서 파일을 읽는 올바른 방법이지만 플랫폼 간 배포 및 경로와 같은 것은 무시합니다.
McAden

1
TextAsset을 사용하는 경우 MonoBehaviour에 대한 참조를 끌고 yext 속성을 사용하십시오. 어떤 경우에 그것은 Respurces에있을 필요가 없습니다
Rage

4

.NET에서와 동일한 방식으로이 작업을 수행 할 수 있습니다.

string word = File.ReadAllText(txtFilePath);

이 코드 스 니펫은 원하는 어느 위치에서나 사용할 수 있습니다.


2

이 코드는 텍스트 파일의 내용을 읽을 때 잘 작동합니다.

import System.IO;

var filename="data.txt";

function Start () {
    var sourse=new StreamReader(Application.dataPath+"/" + filename);
    var fileContents=sourse.ReadToEnd();
    sourse.Close();
    var lines=fileContents.Split("\n"[0]);
    for(line in lines) {
        print(line);
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.