Le fichier texte est-il un actif (faisant partie de votre projet Unity) ou situé sur le système de fichiers?
Kelly Thomas
son situé sur le système de fichiers. J'ai placé mon fichier dans le lecteur E et utilisé le code suivant `import System.IO; var filename = "data.txt"; fonction Start () {var sourse = new StreamReader (Application.dataPath + "/" + filename); var fileContents = sourse.ReadToEnd (); sourse.Close (); var lines = fileContents.Split ("\ n" [0]); for (ligne en lignes) {print (ligne); }} `
user1509674
VTC comme non spécifique au jeu. IO est une programmation générique, cela devrait être sur Stack Overflow, pas sur GameDev.
Gnemlock
La réponse acceptée n'est pas spécifique à Unity, mais la réponse la plus votée (qui aurait dû être acceptée) est spécifique à Unity.
jhocking
Réponses:
8
Version C #.
using System.IO;void readTextFile(string file_path){StreamReader inp_stm =newStreamReader(file_path);while(!inp_stm.EndOfStream){string inp_ln = inp_stm.ReadLine();// Do Something with the input. }
inp_stm.Close();}
EDIT: (Correction d'une erreur sur la ligne 9; changé "stm.ReadLine ();" en "inp_stm.ReadLine ();")
Donc, si vous voulez lire le fichier texte, le script serait comme ceci:
classYourClassName:MonoBehaviour{publicTextAsset textFile;// drop your file here in inspectorvoidStart(){string text = textFile.text;//this is the content as stringbyte[] byteText = textFile.bytes;//this is the content as byte array}}
ou vous pouvez lire le texte comme ressource comme ceci:
TextAsset text =Resources.Load("YourFilePath")asTextAsset;
Il convient également de mentionner que la TextAssetquestion en question devrait probablement être placée dans le Assets/Resourcesdossier. C'est la réponse la plus correcte car toutes les autres réponses semblent ignorer le fait que cela se trouve dans Unity. Ce sont des façons correctes de lire un fichier en C # mais ils ignorent des choses comme le déploiement et les chemins multiplateforme.
McAden
1
Si vous utilisez TextAsset, vous faites glisser la référence vers un MonoBehaviour et utilisez la propriété yext. Dans ce cas, il n'a pas besoin d'être dans Respurces
Rakka Rage
4
Vous pouvez le faire de la même manière que vous le feriez dans .NET
string word =File.ReadAllText(txtFilePath);
Cet extrait de code peut alors être utilisé à n'importe quel endroit de votre choix.
Réponses:
Version C #.
EDIT: (Correction d'une erreur sur la ligne 9; changé "stm.ReadLine ();" en "inp_stm.ReadLine ();")
la source
Il existe une classe nommée TextAssets qui est utilisée pour la lecture de fichiers texte. http://docs.unity3d.com/Manual/class-TextAsset.html Ici vous pouvez trouver le format de fichier pris en charge.
Donc, si vous voulez lire le fichier texte, le script serait comme ceci:
ou vous pouvez lire le texte comme ressource comme ceci:
la source
TextAsset
question en question devrait probablement être placée dans leAssets/Resources
dossier. C'est la réponse la plus correcte car toutes les autres réponses semblent ignorer le fait que cela se trouve dans Unity. Ce sont des façons correctes de lire un fichier en C # mais ils ignorent des choses comme le déploiement et les chemins multiplateforme.Vous pouvez le faire de la même manière que vous le feriez dans .NET
Cet extrait de code peut alors être utilisé à n'importe quel endroit de votre choix.
la source
Ce code fonctionne bien pour moi pour lire le contenu du fichier texte
la source