Czy ktoś może mi pomóc z podaniem kroków potrzebnych do odczytu danych z pliku tekstowego w jedności i jak można dodać skrypt.
Czy ktoś może mi pomóc z podaniem kroków potrzebnych do odczytu danych z pliku tekstowego w jedności i jak można dodać skrypt.
Odpowiedzi:
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( );
}
EDYCJA: (Naprawiono błąd w linii 9; zmieniono „stm.ReadLine ();” na „inp_stm.ReadLine ();”)
Istnieje klasa o nazwie TextAssets, która jest używana do odczytu plików tekstowych. http://docs.unity3d.com/Manual/class-TextAsset.html Tutaj znajdziesz obsługiwany format pliku.
Więc jeśli chcesz odczytać plik tekstowy, skrypt wyglądałby tak:
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
}
}
lub możesz przeczytać tekst jako taki zasób:
TextAsset text = Resources.Load("YourFilePath") as TextAsset;
TextAsset
pytanie to powinno być prawdopodobnie umieszczone w Assets/Resources
folderze. To jest najbardziej poprawna odpowiedź, ponieważ wszystkie inne odpowiedzi wydają się ignorować fakt, że jest to w obrębie Jedności. Są poprawnymi sposobami odczytu pliku w języku C #, ale ignorują takie rzeczy, jak wdrażanie i ścieżki między platformami.
Ten kod działa dobrze dla mnie, aby odczytać zawartość pliku tekstowego
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);
}
}