एकता में पाठ फ़ाइल से डेटा कैसे पढ़ें


14

क्या कोई मुझे एकता में पाठ फ़ाइल से डेटा पढ़ने के लिए आवश्यक कदम देने में मदद कर सकता है और स्क्रिप्ट कैसे जोड़ा जा सकता है।


youtube.com/watch?v=6c1fTHkYzTQ सी # में पाठ पढ़ने के लिए है ... जो आपकी मदद करेगा :)
7

क्या टेक्स्ट फ़ाइल एक एसेट (आपकी एकता परियोजना का हिस्सा) है या फ़ाइल सिस्टम पर स्थित है?
केली थॉमस

फाइलसिस्टम पर स्थित है। मैंने अपनी फाइल को ई ड्राइव में रखा है और निम्न कोड का उपयोग किया है `system.IO; var फ़ाइल नाम = "data.txt"; फ़ंक्शन प्रारंभ () {var sourse = new StreamReader (Application.dataPath + "/" + filename); var fileContents = sourse.ReadToEnd (); sourse.Close (); var लाइनें = fileContents.Split ("\ n" [0]); के लिए (लाइनों में लाइन) {प्रिंट (लाइन); }} `
user1509674

VTC गेम विशिष्ट नहीं है। IO जेनेरिक प्रोग्रामिंग है, यह स्टैक ओवरफ्लो पर होना चाहिए, GameDev पर नहीं।
Gnemlock

स्वीकार किए जाते हैं जवाब एकता विशिष्ट नहीं है, लेकिन उच्चतम मतदान जवाब (जो imo स्वीकार किया गया है चाहिए) है एकता विशिष्ट।
झॉकिंग

जवाबों:


8

सी # संस्करण।

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फ़ोल्डर में रखा जाना चाहिए । यह सबसे सही उत्तर है क्योंकि अन्य सभी उत्तर इस तथ्य की अनदेखी करते हैं कि यह एकता के भीतर है। वे C # में फ़ाइल पढ़ने के सही तरीके हैं, लेकिन क्रॉस-प्लेटफ़ॉर्म परिनियोजन और पथ जैसी चीज़ों को अनदेखा करते हैं।
मैकएडेन

1
यदि आप टेक्स्टएसेटसेट का उपयोग करते हैं, तो आप एक मोनोबीहेवियर का संदर्भ खींचें और yext संपत्ति का उपयोग करें। जिस स्थिति में इसे रेजपुरिस
रक्का रेज

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);
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.