Jump to content
Unity Insider Forum
Sign in to follow this  
Haegar

Probleme mit Resources.Load

Recommended Posts

Hallo *,

 

ich möchte gerne eine externe Text-Datei von der Festplatte laden. Dazu verwende ich:

 

 

	void Start () {

  	 if (System.IO.File.Exists("Resources/Ausschluss.txt"))
		LoadTxtFromResource("Resources/Ausschluss.txt");
}	

static void LoadTxtFromResource (string fileName) {

	int i;
	string s;
	TextAsset sta;

	sta = Resources.Load(fileName) as TextAsset;
	Debug.Log(sta.text);

	string[] dataLines = sta.text.Split("\n"[0]);
	for (i = 0; i < dataLines.Length ; i++){
		s = dataLines[i];
		Debug.Log (s);
	}			

}

 

 

Das TextAsset ist aber nach dem Laden leer; ich erhalte ständig eine NullReferenceException. Das File existiert. Wieso kann ich das nicht laden?

 

Weiß jemand Rat?

 

Danke,

Ulrich

Share this post


Link to post
Share on other sites

Liegt das Textfile eventuell nicht in deinem Projektfolder, weil ich vermute Resources.Load() läd nur Assets und damit muss der Pfad auf ein Projektfolder + Asset in deinem Projekt zeigen.

Share this post


Link to post
Share on other sites

Du hast "Resources" mit im Pfad. Der ist aber implizit gegeben. Der Pfad, den du da stehen hast, entspricht also quasi

"Resources/Resources/Ausschluss.txt"

Share this post


Link to post
Share on other sites

Sollte dein Textfile im Projektassetpfad liegen, probiere es mal mit diesem Pfad, oder siehe Sascha's Vorschlag, denke aber generell es ist ein Pfadproblem...:

string texture = "Assets/Resources/Ausschluss.txt";
oder
string texture = "Ausschluss.txt"; (siehe Sascha's Vorschlag)
oder
string texture = "Ausschluss";

Share this post


Link to post
Share on other sites

Danke für die Vorschläge, aber es haut nix hin. Mich wundert halt, dass bei der Überprüfung, ob das File existiert, ein true zurückkommt, aber das File trotzdem nicht eingelesen werden kann...

 

if (System.IO.File.Exists("Resources/Ausschluss.txt"))
  LoadTxtFromResource("Resources/Ausschluss.txt");

 

Mit Groß- & Kleinschreibung etc. hab ich auch schon experimentiert.

 

Jetzt weiss ich auch nicht mehr weiter...

 

Ulrich

Share this post


Link to post
Share on other sites

Haegar, du hast meinen Post offenbar nicht gelesen.

File.Exists schaut relativ zum Projekt (vermutlich), aber Resources.Load schaut relativ zu einem imaginären Ordner, der zum Inhalt die Inhalte aller Ordner mit Namen "Resources" im Projekt hat.

Richtig also eher:

if (System.IO.File.Exists("Resources/Ausschluss.txt"))
  LoadTxtFromResource("Ausschluss.txt");

Share this post


Link to post
Share on other sites

Hi Sascha,

 

ich hab das schon gelesen, aber es hat bisher nix zum Erfolg geführt. Mittlerweile habe ich zu Testzwecken in fast allen Ordnern ne Datei "Ausschluss.txt".

 

Ich vermute fast, dass das Problem woanders liegt. Vielleicht ist die Datei zu groß (178 kb), vielleicht muss die Endung anders lautet (ne, bei Textdateien nicht) oder oder oder.

 

Ich verstehe es nicht...

 

 

### Ich habs rausgekriegt... ###

 

Die Endung ".txt" muss entfernt werden. Das ist alles... Also nur:

 

if (System.IO.File.Exists("Resources/Ausschluss.txt"))
  LoadTxtFromResource("Ausschluss");

  • Like 1

Share this post


Link to post
Share on other sites

Hatte ich ja oben bereits geschrieben, aber gut zu wissen welche der 3 Varianten es war ;)

 

Richtig! Jetzt wo Du es sagst...

 

Manchmal sollte man doch aufmerksamer lesen.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...